mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-01 19:32:26 +02:00
132 lines
3.4 KiB
Markdown
132 lines
3.4 KiB
Markdown
# La Chariotte | 1.1.1
|
|
|
|
## Présentation
|
|
|
|
<img src="la_chariotte/static/img/logos/logo_la_chariotte.png" title="logo la Chariotte" height="150"/>
|
|
|
|
La Chariotte est une application web sous licence libre Affero GPL, développée et maintenue par [Hashbang](https://hashbang.fr/).
|
|
|
|
## 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 :
|
|
```bash
|
|
git clone https://gitlab.com/hashbangfr/la_chariotte.git
|
|
```
|
|
|
|
Installer les dépendances :
|
|
```bash
|
|
pip install -r requirements.txt
|
|
pip install -r dev-requirements.txt
|
|
```
|
|
|
|
## Travailler sur le frontend
|
|
|
|
install bulma
|
|
```bash
|
|
npm install bulma
|
|
```
|
|
|
|
check sass version
|
|
```bash
|
|
sass --version
|
|
# used for developement: 1.59.3 compiled with dart2js 2.19.4
|
|
```
|
|
|
|
watch for changes when updating scss files (from project root)
|
|
```bash
|
|
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)
|
|
```bash
|
|
sass --no-source-map ./la_chariotte/static/sass/style.sass:./la_chariotte/static/css/app.css
|
|
```
|
|
|
|
## Lancer les tests
|
|
|
|
Lancer les tests avec pytest :
|
|
```bash
|
|
pytest
|
|
```
|
|
|
|
Si il y a des erreurs ISORT, on peut lancer isort pour trier les fichiers :
|
|
```bash
|
|
isort .
|
|
```
|
|
|
|
Si il y a des erreurs BLACK, on peut lancer black pour linter le code :
|
|
```bash
|
|
black .
|
|
```
|
|
|
|
## Architecture de l'application
|
|
|
|
Les différentes applications Django créées sont :
|
|
|
|
- ``Order``, pour gérer tout ce qui tourne autour des commandes
|
|
- ``Accounts``, 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 :
|
|
|
|
```mermaid
|
|
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
|
|
}
|
|
```
|