- SolidStart, framework fullstack basé sur SolidJS, utilise Vinxi, Vite et Nitro en interne
- UnoCSS, framework CSS dans le même esprit que TailwindCSS
- pnpm, gestionnaire de dépendances rapide et efficace
- TypeScript, JS mais typé pour assurer la qualité du code
- MongoDB, base de données NoSQL
J'ai décidé de partir sur SolidStart puisque SolidJS est une librairie que j'admire pour réaliser mes interfaces. C'est pourquoi il me paraît évident de partir sur un framework fullstack qui utilise SolidJS pour le front-end.
Concernant la base de données, j'ai décidé d'aller vers MongoDB pour sa très bonne intégration dans l'écosystème NodeJS (via mongoose
) et sa facilité d'utilisation.
- Inscription (+ envoi d'un code OTP par e-mail pour confirmer l'inscription)
- Mot de passe hashé (bcrypt)
- Vérification de la validité de l'adresse e-mail
- Mot de passe >= 8 caractères (bonnes pratiques)
- Connexion
- Suppression de son compte
- Entraine la suppression de toutes les réservations effectuées
- Réservation entre deux dates
- Vérification de la disponibilité
- Liste des réservations effectuées par l'utilisateur
- Annulation d'une réservation
- Recherche de séjours disponibles
- Filtrer par pays
- Filtrer par ville
- Filtrer par continent
- Filtrer par nombre de personnes
- Filtrer par prix
- Filtrer par environnement (campagne, ville, ...)
- Affichage des détails d'un séjour
- Affichage des erreurs (via un toast)
- Personnalisation du nom de l'utilisateur dans le profil
Concernant l'API, il n'y a pas d'OpenAPI disponible, cependant un export Hoppscotch est disponible dans le fichier api.hoppscotch.json. Des identifiants et tokens de démonstration y sont déposés, n'hésitez pas à les changer lors d'une nouvelle authentification.
# On clone le dépôt git
git clone https://github.com/Vexcited/odm-2024
cd odm-2024
# Installation des dépendances
pnpm install
Il ne faut pas oublier de créer un fichier .env
à la racine du projet avec les variables d'environnement contenues dans le fichier .env.example
.
Vous pouvez démarrer le serveur de développement en utilisant la commande suivante :
pnpm dev
Nous utilisons le preset node
par défaut.
pnpm build
pnpm start