« Vocab-app » : différence entre les versions
De EC_Wiki
Autres actions
Page créée avec « = 🏗️ Architecture complète de vocab-app FastAPI (propre et modulaire) = app/ │ ├── main.py ├── database.py ├── dependencies.py │ ├── models/ │ ├── user.py │ ├── progress.py │ └── __init__.py │ ├── routers/ │ ├── auth.py # login / logout / register │ ├── users.py # profil, préférences │ ├── progress.py # progression vocabula... » |
Aucun résumé des modifications |
||
| Ligne 53 : | Ligne 53 : | ||
└── img/ | └── img/ | ||
└── icons/ | └── icons/ | ||
== 🎯 Explication claire de chaque partie == | |||
==== 1) models/ ==== | |||
Contient les tables SQLAlchemy : | |||
* user.py → comptes utilisateurs | |||
* progress.py → progression par utilisateur | |||
* vocab.py (si tu veux) → mots, catégories | |||
==== 2) routers/ ==== | |||
Chaque fonctionnalité a son routeur : | |||
* auth.py → login, logout, register | |||
* users.py → profil, préférences | |||
* progress.py → progression vocabulaire | |||
* vocab.py → ajout / édition / suppression de mots | |||
==== 3) services/ ==== | |||
Toute la logique métier : | |||
* auth_service.py → hashing, création user, validation | |||
* progress_service.py → mise à jour progression | |||
* vocab_service.py → gestion des mots | |||
==== 4) middleware/ ==== | |||
Le middleware de session : | |||
* charge la session depuis le cookie | |||
* stocke user_id | |||
* rend l’utilisateur disponible dans request.state.user | |||
==== 5) templates/ ==== | |||
Structure claire : | |||
* base.html → layout global | |||
* login.html / register.html | |||
* dashboard.html → page d’accueil utilisateur | |||
* review.html → révision vocabulaire | |||
* components/ → fragments réutilisables (navbar, cartes, stats) | |||
==== 6) static/ ==== | |||
Tout ce qui est visuel : | |||
* CSS | |||
* JS | |||
* images | |||
* icônes | |||
== 🧠 Et le main.py devient ultra propre == | |||
Il ne contient que : | |||
* création de l’app | |||
* middleware | |||
* montage des routes | |||
* montage des templates | |||
* montage du static | |||
== 🎉 Résultat == | |||
Tu obtiens une architecture : | |||
* professionnelle | |||
* modulaire | |||
* scalable | |||
* parfaite pour plusieurs utilisateurs | |||
* idéale pour ton app de vocabulaire | |||
* compatible avec sessions + progression + comptes | |||
Dernière version du 5 janvier 2026 à 12:35
🏗️ Architecture complète de vocab-app FastAPI (propre et modulaire) modifier
app/
│
├── main.py
├── database.py
├── dependencies.py
│
├── models/
│ ├── user.py
│ ├── progress.py
│ └── __init__.py
│
├── routers/
│ ├── auth.py # login / logout / register
│ ├── users.py # profil, préférences
│ ├── progress.py # progression vocabulaire
│ ├── vocab.py # gestion des mots
│ └── __init__.py
│
├── services/
│ ├── auth_service.py # hashing, validation, création user
│ ├── progress_service.py
│ └── vocab_service.py
│
├── middleware/
│ ├── session.py # gestion des cookies signés
│ └── __init__.py
│
├── utils/
│ ├── security.py # bcrypt, tokens
│ ├── validators.py
│ └── __init__.py
│
├── templates/
│ ├── base.html
│ ├── login.html
│ ├── register.html
│ ├── dashboard.html
│ ├── review.html
│ └── components/
│ ├── navbar.html
│ ├── card.html
│ └── stats.html
│
└── static/
├── css/
│ ├── main.css
│ └── theme.css
├── js/
│ ├── htmx.min.js
│ └── app.js
└── img/
└── icons/
🎯 Explication claire de chaque partie modifier
1) models/ modifier
Contient les tables SQLAlchemy :
- user.py → comptes utilisateurs
- progress.py → progression par utilisateur
- vocab.py (si tu veux) → mots, catégories
2) routers/ modifier
Chaque fonctionnalité a son routeur :
- auth.py → login, logout, register
- users.py → profil, préférences
- progress.py → progression vocabulaire
- vocab.py → ajout / édition / suppression de mots
3) services/ modifier
Toute la logique métier :
- auth_service.py → hashing, création user, validation
- progress_service.py → mise à jour progression
- vocab_service.py → gestion des mots
4) middleware/ modifier
Le middleware de session :
- charge la session depuis le cookie
- stocke user_id
- rend l’utilisateur disponible dans request.state.user
5) templates/ modifier
Structure claire :
- base.html → layout global
- login.html / register.html
- dashboard.html → page d’accueil utilisateur
- review.html → révision vocabulaire
- components/ → fragments réutilisables (navbar, cartes, stats)
6) static/ modifier
Tout ce qui est visuel :
- CSS
- JS
- images
- icônes
🧠 Et le main.py devient ultra propre modifier
Il ne contient que :
- création de l’app
- middleware
- montage des routes
- montage des templates
- montage du static
🎉 Résultat modifier
Tu obtiens une architecture :
- professionnelle
- modulaire
- scalable
- parfaite pour plusieurs utilisateurs
- idéale pour ton app de vocabulaire
- compatible avec sessions + progression + comptes