pcpokemon
v1.2.0
Published
pokemon pc project
Downloads
2
Readme
🎮 Projet PC Pokémon
📝 Auteurs
- Samuel DELIENS
- Jihad RIFI
🛠️ Stack Technique
- Node.js : Utilisé comme environnement d'exécution pour son efficacité et sa popularité dans le développement de serveurs web.
- Express : Un framework web minimaliste et flexible pour Node.js, utilisé pour créer l'API de notre projet.
- Sequelize : Un ORM pour Node.js, utilisé pour interagir avec la base de données MySQL de manière plus simple et plus structurée.
- MySQL : Choisi pour sa performance et sa fiabilité en tant que système de gestion de base de données relationnelle.
- Mocha, Chai et Supertest : Utilisés pour les tests unitaires et d'intégration, remplaçant Jest & Supertest pour une meilleure compatibilité et flexibilité.
- Bcrypt.js : Pour le hachage des mots de passe, garantissant ainsi la sécurité des informations utilisateur. Initialement, bcrypt était utilisé, mais des problèmes de compilation nous ont contraints à passer à bcryptjs.
- Dotenv : Pour la gestion sécurisée des variables d'environnement.
- Nyc : Pour la couverture de code.
- Eslint : Pour la vérification des erreurs de style dans le code.
- Semantic Release : Pour la gestion des versions et la publication automatique des versions sur GitLab.
- Swagger : Pour la documentation de l'API.
- Yamljs : Pour la gestion des fichiers de configuration en format YAML pour Swagger.
🏗️ Architecture du Projet
src/ : Contient le code source de l'application
- config/ : Configuration de l'application, y compris les paramètres de la base de données et les constantes.
- controller/ : Logique des contrôleurs pour gérer les requêtes et les réponses.
- model/ : Modèles Sequelize pour définir les structures de données et les interactions avec la base de données.
- route/ : Définit les routes de l'API.
- service/ : Services utilitaires pour des opérations comme la validation et l'authentification.
- app.js : Point d'entrée de l'application, initialise l'application Express et définit les middlewares.
test/ : Contient les tests unitaires et d'intégration pour les différentes parties de l'application.
.env : Fichier pour les variables d'environnement.
swagger.yaml : Fichier de configuration Swagger pour la documentation de l'API.
Dockerfile : Dockerfile pour containeriser l'application.
docker-compose.yml : Fichier de configuration Docker Compose pour lancer l'application et la base de données en tant que conteneurs.
package.json : Fichier de configuration npm listant les dépendances et les scripts du projet.
🚀 Installation et Lancement du Projet
📋 Prérequis
- Node.js et npm doivent être installés sur votre machine.
- Docker et Docker Compose doivent être installés pour lancer la base de données MySQL en tant que conteneur.
🛠️ Étapes
- Cloner le projet :
git clone [email protected]:SamuelDeliens/pcpokemon.git
- Installer les dépendances :
npm install
- Modifier les valeurs de sécurité dans le fichier
.env
. - Lancer Docker :
docker-compose up -d
🔧 Lancement du Projet en Mode Développement
- Lancer Docker :
docker-compose up -d
- Arrêter l'instance nodeapp du Docker :
docker-compose down nodeapp
- Lancer l'application :
npm run dev
📜 Divers Scripts npm
npm start
: Lance l'application en mode production.npm run dev
: Lance l'application en mode développement avec nodemon.npm run test
: Lance les tests unitaires et d'intégration.npm run debug
: Lance l'application en mode débogage avec nodemon.npm run lint
: Exécute ESLint pour vérifier les erreurs de style dans le code.