No description
  • TypeScript 98.7%
  • JavaScript 1.3%
Find a file
2025-05-06 14:09:14 +02:00
.vscode chore: initialize repository 2024-10-17 17:22:02 +02:00
public feat(map): add custom marker 2024-10-19 12:05:05 +02:00
scripts chore: initialize repository 2024-10-17 17:22:02 +02:00
src feat(map): add custom marker 2024-10-19 12:05:05 +02:00
.env.example chore: add .env support 2024-10-18 08:48:52 +02:00
.gitignore chore: add .env support 2024-10-18 08:48:52 +02:00
api.hoppscotch.json feat: add hoppscotch collection 2024-10-19 11:06:25 +02:00
app.config.ts chore: initialize repository 2024-10-17 17:22:02 +02:00
eslint.config.cjs chore: initialize repository 2024-10-17 17:22:02 +02:00
package.json chore: merge pull request #6 from Vexcited/dependabot/npm_and_yarn/mongoose-8.9.5 2025-05-06 14:09:14 +02:00
pnpm-lock.yaml chore: merge pull request #6 from Vexcited/dependabot/npm_and_yarn/mongoose-8.9.5 2025-05-06 14:09:14 +02:00
README.md fix: build & production scripts 2024-10-19 11:56:48 +02:00
tsconfig.json chore: initialize repository 2024-10-17 17:22:02 +02:00
uno.config.ts fix: build & production scripts 2024-10-19 11:56:48 +02:00

Participation ODM 2024 - Régionales de France

Techstack

  • 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.

Fonctionnalités

  • 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.

Développement

# 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

Production

Nous utilisons le preset node par défaut.

pnpm build
pnpm start