Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Vocab-app » : différence entre les versions

De EC_Wiki
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 le wikicode

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 le wikicode

1) models/ modifier le wikicode

Contient les tables SQLAlchemy :

  • user.py → comptes utilisateurs
  • progress.py → progression par utilisateur
  • vocab.py (si tu veux) → mots, catégories

2) routers/ modifier le wikicode

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 le wikicode

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 wikicode

Le middleware de session :

  • charge la session depuis le cookie
  • stocke user_id
  • rend l’utilisateur disponible dans request.state.user

5) templates/ modifier le wikicode

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 le wikicode

Tout ce qui est visuel :

  • CSS
  • JS
  • images
  • icônes

🧠 Et le main.py devient ultra propre modifier le wikicode

Il ne contient que :

  • création de l’app
  • middleware
  • montage des routes
  • montage des templates
  • montage du static

🎉 Résultat modifier le wikicode

Tu obtiens une architecture :

  • professionnelle
  • modulaire
  • scalable
  • parfaite pour plusieurs utilisateurs
  • idéale pour ton app de vocabulaire
  • compatible avec sessions + progression + comptes