commit 0db0a69f0fa00d831b7d90340e045097e8d92343 Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jul 16 10:01:49 2019 -0500 fix(groups): return 0, not empty, when skipping downscore on Dailies fixes #11231 commit 1bf5bc714f660345f37bcc4e3587143341521c65 Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jul 16 09:48:28 2019 -0500 fix(groups): correct task creation button commit 90908211200bc4a3eb204178df5c812ffcd09f37 Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jul 16 09:46:04 2019 -0500 fix(groups): clear approval status at cron for Habits and Dailies commit 57e8dd0252c3ea45dd6fa1a7670ee197f32e76e5 Merge: d31b0a2d0c9a56e8f3Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jul 16 09:33:27 2019 -0500 Merge branch 'develop' into sabrecat/group-tasks commit d31b0a2d0e3b7a46235696e9b05fa734ac29a2e5 Merge: f2185a91b043696c22Author: SabreCat <sabrecat@gmail.com> Date: Mon Jun 24 14:58:26 2019 +0000 Merge branch 'develop' into sabrecat/group-tasks commit f2185a91bde554c7eb22cd6bdfc1ef9227f1e765 Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jun 18 10:10:10 2019 -0500 fix(groups): divide task delta by number of assigned users commit af0cde52f22129312d0102ecc5571f59aa2e396e Author: Sabe Jones <sabrecat@gmail.com> Date: Tue Jun 18 10:06:01 2019 -0500 fix(groups): remove chat spam commit c1c810967a9e34155948a9164862125517372268 Merge: bf4f3fb08f987585cfAuthor: Sabe Jones <sabrecat@gmail.com> Date: Tue Jun 18 08:15:28 2019 -0500 Merge branch 'develop' into sabrecat/group-tasks commit bf4f3fb08491b4c4e1dbfaa58a2a6510c3cb78aa Author: Sabe Jones <sabrecat@gmail.com> Date: Thu May 23 11:29:01 2019 -0500 fix(test): expect new task class from store commit ae0379c80519523f68d4d606e1cc4bed8e9e49ec Merge: ce5096e11664cf5a47Author: Sabe Jones <sabrecat@gmail.com> Date: Thu May 23 11:25:15 2019 -0500 Merge branch 'develop' into sabrecat/group-tasks commit ce5096e116558419e4a73e8b23a58c78a1f2ab9b Author: Sabe Jones <sabrecat@gmail.com> Date: Thu May 23 11:02:01 2019 -0500 feat(group-plans): clarify non-interactive controls on task board commit ff3cec9530e30d51c43171d6f97d3888ff200352 Author: Sabe Jones <sabrecat@gmail.com> Date: Tue May 21 11:10:50 2019 -0500 feat(group-plans): score shared task when user scores it
Running
For information about installing and running Habitica locally, see Setting up Habitica Locally.
Preparation Reading
-
Vue 2 (https://vuejs.org)
-
Webpack (https://webpack.github.io/) is the build system and it includes plugins for code transformation, right now we have: BabelJS for ES6 transpilation, eslint for code style, less and postcss for css compilation. The code comes from https://github.com/vuejs-templates/webpack which is a Webpack template for Vue, with some small modifications to adapt it to our use case. Docs http://vuejs-templates.github.io/webpack/
-
We're using
.vuefiles that make it possible to have HTML, JS and CSS for each component together in a single location. They're implemented as a webpack plugin and the docs can be found here http://vue-loader.vuejs.org/en/ -
SemanticUI is the UI framework http://semantic-ui.com/. So far I've only used the CSS part, it also has JS plugins but I've yet to use them. It supports theming so if it's not too difficult we'll want to customize the base theme with our own styles instead of writing CSS rules to override the original styling.
The code is in /website/client. We're using something very similar to Vuex (equivalent of React's Redux) for state management http://vuex.vuejs.org/en/index.html
The API is almost the same except that we don't use mutations but only actions because it would make it difficult to work with common code
The project is developed directly in the develop branch as long as we'll be able to avoid splitting it into a different branch.
So far most of the work has been on the template, so there's no complex logic to understand. The only thing I would suggest you to read about is Vuex for data management: it's basically a Flux implementation: there's a central store that hold the data for the entire app, and every change to the data must happen through an action, the data cannot be mutated directly.
For further resources, see Guidance for Blacksmiths, and in particular the "Website Technology Stack" section.