Booked est une application SaaS (Software as a Service) destinée aux petits professionnels tels que les salons de coiffure, les instituts de beauté, et autres prestataires de services nécessitant un système de réservation. L'objectif principal est de simplifier la gestion des rendez-vous via une application web accessible et intuitive ainsi qu'une application mobile.
L'application permettra à ces professionnels de digitaliser leur système de réservation, d'améliorer l'expérience client et d'optimiser la gestion de leur planning au quotidien.
-
Gestion de compte professionnel
- Création et personnalisation du profil entreprise
- Paramétrage des horaires d'ouverture
- Configuration des services proposés et leurs durées
- Définition des tarifs
-
Gestion du calendrier
- Visualisation des réservations (vue journalière, hebdomadaire, mensuelle)
- Blocage de créneaux pour indisponibilités
- Gestion des congés et jours fériés
-
Gestion des réservations
- Acceptation/refus manuel ou automatique des demandes
- Modification/annulation de rendez-vous
- Envoi de notifications aux clients
-
Gestion des clients
- Base de données clients avec historique
- Notes et préférences par client
- Statistiques et historique de fréquentation
-
Tableau de bord analytique
- Suivi de l'activité et du taux d'occupation
- Statistiques de réservation
- Rapports périodiques
-
Gestion de compte client
- Création et gestion de profil
- Historique des rendez-vous
- Notifications et rappels
-
Réservation en ligne
- Recherche par type de service
- Sélection de date et d'heure disponibles
- Choix du prestataire (si applicable)
- Paiement en ligne (optionnel)
-
Gestion des rendez-vous
- Modification de réservation
- Annulation de rendez-vous
- Rappels automatiques
- Framework : React avec TypeScript
- Routage : React Router
- Styles : TailwindCSS pour le design responsive
- Interface utilisateur : Composants personnalisés avec Material UI
- Gestion des dates : date-fns, react-datepicker
- Requêtes API : Axios
- Icônes : React Icons
- Framework : Node.js avec Express
- Langage : TypeScript
- Base de données : MongoDB avec Mongoose
- Authentification : JWT (JSON Web Token)
- Sécurité : bcrypt pour le hachage des mots de passe
- Communication par email : Nodemailer
- Gestion des fichiers : Multer pour les uploads
- Variables d'environnement : dotenv
- Déploiement : À définir (options: Vercel, Heroku, AWS, etc.)
- CI/CD : À définir
- Stockage des médias : Solution locale avec possibilité de migration vers un service cloud
- Node.js (version LTS recommandée)
- npm ou yarn
- MongoDB installé localement ou accès à une instance MongoDB (Atlas)
- Un éditeur de code (VS Code recommandé)
- Git
-
Cloner le dépôt
git clone <URL_du_dépôt> cd Booked -
Installation des dépendances
npm install cd client && npm install cd ../server && npm install -
Configuration des variables d'environnement
- Créer un fichier
.envdans le dossierserveren s'inspirant du modèle.env.example - Configurer les variables nécessaires (connexion MongoDB, clés JWT, etc.)
- Créer un fichier
-
Initialisation de la base de données
cd server npm run init-db -
Lancement de l'application en développement
# À la racine du projet npm run devCette commande lancera simultanément le serveur backend et l'application frontend.
npm run dev: Démarre l'application en mode développementnpm run dev:client: Démarre uniquement le frontendnpm run dev:server: Démarre uniquement le backendnpm run build: Compile l'application pour la productionnpm run init-db: Initialise la base de données avec les données de basenpm run seed-real-data: Ajoute des données de test réalistes
- Utiliser ESLint et Prettier pour maintenir un style de code cohérent
- Suivre les principes de la programmation fonctionnelle et des composants React
- Documenter les API avec des commentaires clairs
- Respecter une architecture modulaire pour faciliter la maintenance