Cette application est un gestionnaire de mots de passe simple, permettant aux utilisateurs d'ajouter, modifier et supprimer des mots de passe pour différents services. Les mots de passe sont chiffrés avant d'être stockés dans une base de données PostgreSQL.
CryptGuard_Demo.mp4
- Next.js : Framework React utilisé pour la partie front-end et les routes API.
- Prisma : ORM (Object-Relational Mapper) utilisé pour interagir avec la base de données PostgreSQL.
- PostgreSQL : Base de données relationnelle pour stocker les mots de passe.
- bcryptjs : Bibliothèque utilisée pour chiffrer les mots de passe avant de les stocker.
- Axios : Client HTTP utilisé pour les requêtes vers les API.
- Docker : Conteneurisation de l'application et de la base de données.
- Ajouter un mot de passe pour un service donné (service, nom d'utilisateur et mot de passe).
- Modifier un mot de passe existant.
- Supprimer un mot de passe.
- Les mots de passe sont chiffrés à l'aide de
bcryptjsavant d'être stockés dans la base de données.
- Docker : Assurez-vous d'avoir Docker installé et configuré. Vous pouvez télécharger Docker ici.
-
Cloner le dépôt :
git clone <URL_DU_DEPOT>cd CryptGuard -
Lancer les services avec Docker Compose :
docker-compose up --buildCela démarre à la fois l'application Next.js et la base de données PostgreSQL dans des conteneurs séparés.
-
Accédez à l'application dans votre navigateur à l'adresse :
http://localhost:3000. -
Arrêter les services : Pour arrêter tous les services, exécutez :
docker-compose down
Si vous préférez ne pas utiliser Docker, suivez les étapes ci-dessous pour installer et exécuter l'application manuellement :
- Node.js : Assurez-vous d'avoir Node.js installé sur votre machine. Vous pouvez télécharger Node.js ici.
-
Clonez le dépôt :
git clone <URL_DU_DEPOT>cd CryptGuard -
Installez les dépendances Node.js :
npm install -
Installez Prisma :
npx prisma generate
-
Créez un fichier
.envà la racine du projet et ajoutez la configuration de la base de données PostgreSQL :DATABASE_URL="postgresql://postgres:password@localhost:5432/mydatabase" -
Démarrer PostgreSQL avec Docker :
docker run --name bdd_test -e POSTGRES_PASSWORD=password -p 5432:5432 postgres -
Lancer les migrations Prisma pour initialiser la base de données :
npx prisma migrate dev --name init -
Lancer l'application :
npm run dev -
Accédez à l'application dans votre navigateur à l'adresse :
http://localhost:3000.
Les routes API suivantes sont disponibles pour interagir avec l'application :
- GET
/api/passwords: Récupère la liste des mots de passe. - POST
/api/passwords: Ajoute un nouveau mot de passe. Attends un objet JSON avecservice,username, etpassword. - PUT
/api/passwords/[id]: Met à jour un mot de passe existant. Attends un objet JSON avecservice,username, etpassword. - DELETE
/api/passwords/[id]: Supprime un mot de passe via sonid.
Les mots de passe sont chiffrés avant d'être stockés dans la base de données à l'aide de la bibliothèque bcryptjs. Les mots de passe ne sont jamais stockés en clair, et chaque modification entraîne un nouveau hachage.
- Sécurité : L'application utilise
bcryptjspour assurer la sécurité des mots de passe. Cependant, assurez-vous que votre fichier.env(contenant les informations de connexion à la base de données) est correctement sécurisé. - Gestion des erreurs : Assurez-vous que le conteneur PostgreSQL est bien lancé avant de démarrer l'application. Vous pouvez vérifier l'état du conteneur avec la commande : docker ps