Un projet back-end créé avec Bun et Elysia dans le cadre du cours d'Architecture back-end.
Ce projet est un petit back-end qui permet d'avoir une petite API en utilisant Bun, une technologie permettant de réaliser des API simples et, couplée à Elysia, qu'elles soient plus rapide qu'une API NodeJS Express.
Ce projet implémente aussi Elysia qui est un framework TypeScript et optimisé par Bun avec une sécurité de type de bout en bout.
- Clonez ce dépôt vers votre machine locale :
git clone https://github.com/Lucas-Huerta/Back-Bun.git
cd nom-du-projet
bun install
📁 src
|__ 📁 controllers
| ├── 📄 auth.controller.ts
| ├── 📄 user.controller.ts
| ├── 📄 pokemon.controller.ts
|__ 📁 database
| |__ 📄 db.setup.ts
|__ 📁 middlewares
| |__ 📄 authorization.ts
|__ 📁 routes
| ├── 📄 auth.routes.ts
| ├── 📄 user.routes.ts
| ├── 📄 pokemon.routes.ts
|__ 📁 types
| ├── 📄 Pokemon.ts
| ├── 📄 User.ts
📄 index.ts
.env
.env-example
package.json
tsconfig.json
Ce modèle de démarrage inclut la technologie suivante 🧰 :
- Bun 🍡
Et il inclut aussi les plugins suivants 🪛 :
- Swagger : Génère un Swagger de toute l'application à l'adresse
/v1/swagger
- CORS : Autorise et prend en charge les requêtes depuis les multi-origines sécurisées
- HTML : Permet d'injecter du code HTML
- Cookies : Permet d'ajouter des cookies et qu'ils soient accessibles dans toute l'application
- Elysia Jwt : Permet la génération et la vérification d'un token
- Mongoose : Permet la connexion à la base de donnée Mongo Db et la génération des schémas de données
En + 🐣 :
- Bun Wifi Name : Récupère et permet d'afficher le nom de la wifi sur laquelle le serveur tourne
Chaque plugin ajouté à été pensé pour l'utilité de l'application.
Les plugins Cookies et Elysia Jwt ont été ajoutés pour la sécurité de l'application, pour faire en sorte qu'un utilisateur doit se connecter avant de pouvoir faire des requêtes modifiant la base de données.
Les CORS permettent d'autoriser et de prendre en charge les requêtes provenant de divers origines et donc permet dans le futur de pouvoir moduler les points d'entrés sécurisés du serveur.
Un Swagger qui permet de réunir tous les points d'entrés de l'api sur une page en indiquant l'url, les paramètres à prendre en charge et même de tester le point. Ceci permet de faciliter la compréhension et l'usage des différents points d'entrés disponibles.
Ensuite, HTML permet d'injecter du code HTML sur un point d'entrée défini pour pouvoir mettre des données sur une page HTML afin faciliter l'accessiblité si des utilisteurs souhaitent voir des données ou autre.
Aussi, Mongoose, un plugin nécéssaire, permettant de connecter le boilerplate avec une base de donnée Mongo DB. La connexion se fait via les variables du .env, un .env-example est mit à disposition afin d'avoir la même configuration.
Et pour finir, Bun Wifi Name et un plugin qui est en +, et qui permet de récupérer le nom de la wifi sur laquelle le serveur est connecté afin d'afficher n'importe ou ce nom.
Dans le répertoire du projet, vous pouvez exécuter les commandes suivantes :
bun run start
Lance l'application en mode watch mode => recharge la page à chaque sauvegarde.
Ce projet utilise des variables d'environnement pour configurer certains aspects de l'application. Vous pouvez créer un fichier .env à la racine du projet pour définir ces variables.
Un fichier d'exemple est fourni dans env-example.