These are some infos which might be useful before contributing.
We have a (rather standard) code of conduct, please make sure to review it prior to contributing.
The main language for working on this project is English. French is fine as well, if you are more comfortable speaking French.
- Branch off
master
. - One feature per commit.
- In case of changes request, amend your commit.
New issues and merge requests are better at Framagit. If this is a blocking issue for you, you can contribute through Github as well.
You can contribute in many ways to Cycl'Assist, be it development, translations or simply communicating around about this webapp!
There is also an ongoing issue concerning the general UX and design of the webapp. If you have any knowledge on these subjects and want to help, feel free to comment this issue (in French or in English).
The quickest way to get started is to simply run
API_BASE_URL=http://127.0.0.1:8081/ yarn dev
to spawn the client-side webapp, listening on localhost:8080
and
python -m server
to spawn the server-side part, listening on localhost:8081
.
You might want to have a look at doc/0.hosting.md
for
extra information on the available configuration options and general guidance
with hosting the software.
A few opendata files are already imported in Cycl'Assist. All the scripts to
fetch and import them are located under the scripts/opendata
folder.
If you find any other opendata file which is not already imported and would be
worth having in Cycl'Assist, please feel free to edit the scripts under
scripts/opendata
and create a merge request!
A useful tool for dev on Cycl'Assist is the ability to mock location (instead
of using the location provided by your GPS or manual position). This is
possible by editing the values src/constants.js
file. You can either
generate random positions in a bounding box or rely on a GPX file.
To mock position using a GPX file, there is one extra required step. You
should run scripts/gps_to_gpx.py <GPX_FILE>
to create a file at
src/tools/mock_gpx.json
which will be used as a mocking source
for the position data (provided the settings in src/constants.js
require
mocking position using a GPX trace).
We are using A la carte Vuetify components to reduce the size of the build.
If you then require new Vuetify components, check that they are indeed
included in the src/vuetify.js
file. The yarn list-vuetify-components
command might be useful to help you determine which components are used across
the code.
Unittests are written in .spec.js
files placed next to the tested JS module.
Translation is done directly on Zanata.
To add new strings to localize, edit the src/i18n/en.json
file with your new
strings (and only this file). English locale should be considered as the
reference locale and new strings should always be added there.
Then, you can run yarn push-locales
to send the updated locales to translate
to the Zanata server.
Once the strings have been translated at Zanata, you can run yarn pull-locales
to fetch the translated files.
Note : To use these scripts you will need the Translate-toolkit(pip install translate-toolkit
) and the Zanata Python CLI
client.