LAtelierDuSavoir
Echange et vente de cours, formations et tests en ligne - plateforme educative
Technologies
Documentation du projet
Atelier Du Savoir
Bienvenue dans l'Atelier Du Savoir !
Ici, tu peux vendre tes propres cours, formations et tests en ligne, avec une ambiance chaleureuse et un workflow fluide. Tout est pensé pour que la création et la gestion des contenus soient simples, et que l'expérience utilisateur soit agréable.
Lancer le projet
Backendcd backend
npm install
node db/runSeeds.js # (pour initialiser la base et peupler avec des données de test)
npm run dev
Frontend
cd frontend
npm install
npm run dev
- Le backend tourne par défaut sur http://localhost:4000
- Le frontend sur http://localhost:5173
ORM & Modèles (Sequelize)
- Le backend utilise Sequelize pour gérer la base de données (SQLite en dev/test, PostgreSQL en prod)
- Tous les modèles sont déclarés en JS dans
backend/src/models/ - Les relations entre modèles sont gérées automatiquement
- Plus besoin d'écrire du SQL à la main : tout est synchronisé avec
node db/runSeeds.js
Modèles principaux
- User : Utilisateurs et authentification
- Course : Cours avec chapitres et paragraphes
- Formation : Formations composées de plusieurs cours
- Test : Tests associés aux cours
- Payment : Historique des paiements
Modèles de catégorisation (nouveaux)
- Theme : Matières et domaines (Mathématiques, Français, Histoire, Sciences, etc.)
- Level : Niveaux de difficulté (Débutant, Intermédiaire, Avancé, Expert)
- Grade : Classes scolaires (CP à Supérieur, organisées par cycles)
Relations
- Course → Theme, Level, Grade (catégorisation)
- Formation ↔ Course (many-to-many via FormationCourse)
- User ↔ Course (achats via UserCourse)
- Course → Chapter → Paragraph (contenu hiérarchique)
Fonctionnalités de catégorisation
Filtrage avancé
- Filtrage des cours par thème, niveau et classe
- Recherche textuelle dans les titres et descriptions
- Combinaison de filtres multiples
API complète
- GET /api/themes - Liste des thèmes
- GET /api/levels - Liste des niveaux
- GET /api/grades - Liste des classes
- GET /api/grades/cycle/:cycle - Classes par cycle (primaire, collège, lycée, supérieur)
- Routes admin protégées pour la gestion (POST, PUT, DELETE)
Seeds automatiques
- 8 thèmes avec couleurs et icônes distinctives
- 4 niveaux de difficulté avec ordre de progression
- 13 classes organisées par cycles scolaires
- Données de test réalistes pour tous les modèles
Import de fichiers Markdown/HTML
Fonctionnalités d'import
- Import Markdown : Fichiers .md et .markdown avec structure automatique
- Import HTML : Fichiers .html et .htm (compatibilité avec l'existant)
- Upload multiple : Import de plusieurs fichiers en une fois
- Catégorisation automatique : Attribution de thème, niveau et classe
- Parsing intelligent : Détection automatique des chapitres et paragraphes
Design Patterns utilisés
- Strategy Pattern : Différents parsers selon le format
- Factory Pattern : Création des parsers appropriés
- Builder Pattern : Construction des objets Course
- Observer Pattern : Suivi de progression en temps réel
- Template Method : Workflow d'import standardisé
API d'import
- POST /api/import/upload - Upload et import d'un fichier
- POST /api/import/upload-multiple - Upload et import de plusieurs fichiers
- POST /api/import/from-path - Import depuis un chemin de fichier
- GET /api/import/formats - Formats supportés
Utilisation
Via l'API
# Upload d'un fichier Markdown
curl -X POST http://localhost:4000/api/import/upload \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@cours-javascript.md" \
-F "theme=Informatique" \
-F "level=Intermédiaire" \
-F "grade=Supérieur"
Via le script de test
cd backend
node scripts/test-import.js
Format Markdown attendu
# Titre du cours
Description
Description du cours...
Premier chapitre
Contenu du premier chapitre...
Deuxième chapitre
Contenu du deuxième chapitre...
Sous-section
Contenu de la sous-section...
Paiement en ligne (Stripe)
- Paiement sécurisé via Stripe Checkout
- Webhook pour débloquer automatiquement les cours après paiement
- Prix modifiable dans le code (par défaut 19,99 €)
Admin & Stats
- Interface admin pour gérer les cours, formations, utilisateurs, thèmes, niveaux et classes
- Dashboard stats : inscrits, ventes, progression, etc. (avec graphiques)
- Gestion complète des catégories avec couleurs et icônes
- Interface d'import de fichiers Markdown/HTML
L'esprit du projet
- Un seul créateur de contenu (toi !)
- Des cours gratuits limités, le reste est payant
- Automatisation possible avec n8n et des prompts IA
- Un thème atelier, ambiance bois, lumière douce, outils, etc.
- Code simple, humain, facile à faire évoluer
- Catégorisation intelligente pour une meilleure expérience utilisateur
- Import automatisé pour faciliter la création de contenu
Tests
- Les tests d'API sont tolérants sur les statuts (200, 201, 400, 401, 404) et la forme des réponses (tableau ou objet), car l'API peut réagir différemment selon l'auth ou la présence de données.
Code source
Projet open source hébergé sur GitHub.
- 0 étoiles
- 0 forks
- JavaScript
Projets suggeres
ClientCRM
CRM simple pour PME: contacts, opportunites, suivi - Next.js React TypeScript
WebDeliveryTrack
Suivi de livraisons pour PME logistique - tableau de bord, colis, chauffeurs - Next.js TypeScript
WebDistributionJournaux
Application distribution de journaux - Node.js MongoDB, zones et seed
WebDuelDeDame
Jeu de dames en ligne temps reel, Next.js et NestJS, design patterns (Strategy, Factory)