la_chariotte | ||
.coveragerc | ||
.gitignore | ||
.gitlab-ci.yml | ||
chariotte-v0-data.sql | ||
conftest.py | ||
dev-requirements.txt | ||
Dockerfile | ||
LICENSE | ||
manage.py | ||
pyproject.toml | ||
README.md | ||
requirements.txt |
La Chariotte | 0.2.0
Présentation

La Chariotte est une application web sous licence libre Affero GPL, développée et maintenue par Hashbang.
Contribuer
Si vous souhaitez contribuer au projet de la Chariotte, merci beaucoup !
Pour cela, une fois que vous avez cloné le projet et obtenu le statut de développeur sur le projet GitLab, vous pouvez :
- choisir une tâche dans le board que vous voulez réaliser, et vous l'assigner - si vous ne savez pas quelle tâche faire, n'hésitez pas à écrire à laetitia@chariotte.fr
- créer une nouvelle branche à partir de develop dont le nom dira ce que vous voulez faire
- réaliser la tâche, sans oublier d'écrire et de lancer les tests (voir plus bas)
- créer une Merge Request, contenant le plus de détails possible sur ce que vous avez fait
Ensuite, un mainteneur de la Chariotte pourra relire votre code et proposer des améliorations/poser des questions si nécessaire. Seuls les mainteneurs peuvent merger dans develop et main.
Encore merci, et bon code !
Développement
Cloner le projet :
git clone https://gitlab.com/hashbangfr/la_chariotte.git
Installer les dépendances :
pip install -r requirements.txt
pip install -r dev-requirements.txt
Travailler sur le frontend
install bulma
npm install bulma
check sass version
sass --version
# used for developement: 1.59.3 compiled with dart2js 2.19.4
watch for changes when updating scss files (from project root)
sass --watch --no-source-map ./la_chariotte/static/sass/style.sass:./la_chariotte/static/css/app.css
OR compile css only once (from project root)
sass --no-source-map ./la_chariotte/static/sass/style.sass:./la_chariotte/static/css/app.css
Lancer les tests
Lancer les tests avec pytest :
pytest
Si il y a des erreurs ISORT, on peut lancer isort pour trier les fichiers :
isort .
Si il y a des erreurs BLACK, on peut lancer black pour linter le code :
black .
Architecture de l'application
Les différentes applications Django créées sont :
Order
, pour gérer tout ce qui tourne autour des commandesAccounts
, pour gérer la création de comptes. Pour la connexion, la déconnexion et le changement de mot de passe, on utilise l'application auth intégrée à Django.
A l'état actuel, le diagramme de classes est le suivant :
classDiagram
GroupedOrder "item_set" <-- Item
GroupedOrder "order_set" <-- Order
Order "ordered_items" <-- OrderedItem
Item "orders" <-- OrderedItem
OrderAuthor "author" <-- Order
CustomUser "grouped_orders" <-- GroupedOrder
class GroupedOrder{
name
deadline : DateTime
delivery_date : Date
place
description
orga : CustomUser
total_price
}
class Item{
name
grouped_order : GroupedOrder
ordered_nb
total_price
max_limit
}
class Order{
grouped_order : GroupedOrder
author : OrderAuthor
price
}
class OrderedItem{
order : Order
nb
item : Item
}
class OrderAuthor {
first_name
last_name
phone
email
}
class CustomUser{
first_name
last_name
email
}