- Front-end is developed in Elm language
- Back-end uses Phoenix framework
- Docker-compose configuration
- AWS Infrastructure scheme
If you use docker you will only need:
- Docker;
- Docker-Compose;
If not, to run this project, you will need to install the following dependencies on your system:
Without docker :
To setup the project refer to both documentation
With docker :
Refer to the DOCKER.md for setup
Before creating an image, you must at least have two categories in order for the select options to work.
- Most of the time assign a ticket on the application board to you. If it is not the case and you are told to do it yourself, assign the github ticket to you.
- When you start working on the ticket, move the concerned ticket to
In Progress
. - Create a branch specifically for this ticket with a name that follows the conventions specified below.
- Commit regularly at each significant step with unambiguous commit messages (see COMMIT_CONVENTIONS file).
- Create a merge request that follows the conventions specified below to the develop branch.
- On the appplication board, move the ticket to the status
In Review
- Assign the merge request to a maintainer
- It may take some back and forth before your pull request is validated
- Your pull request will then be merged into the develop branch and the concerned ticket will be moved to
Done
Pull requests in this project follow two conventions, you will need to use the templates available in the ISSUE_TEMPLATE folder :
- Adding a new feature should use the FEATURE_REQUEST template.
- Reporting a bug should use the BUG_REPORT template.
If your merge request is still work in progress, please add "WIP: " (Work In Progress) in front of the title, therefor you inform the maintainers that your work is not done, and we can't merge it.
The naming of the PR should follow the same rules as the COMMIT_CONVENTIONS
You branch should have a name that reflects it's purpose.
It should use the same guidelines as COMMIT_CONVENTIONS (feat
, fix
, build
, perf
, docs
), followed by an underscore (_
) and a very quick summary of the subject in kebab case.
Example: feat_add-image-tag-database-relation
.
Git hooks are placed in .git/hooks
. The only existing hook for now is a pre-commit hook that will run mix commands for backend part.
For now the only existing linter is Credo for backend part.
A CI pipeline is configured for this project and is accessible in the CI.yaml file.
The pipeline will run 3 different jobs:
- Dependencies check
- Linter
- Tests
The pipeline will be triggered automatically when creating a new Pull Request and on each push on it.
It will also be triggered on push on master
and dev
branches.
API documentation : link
Front documentation : link
Wiki : link