Le projet est consultable à cette adresse.
En 1925, Jacques Prévert, André Breton, Frida Kahlo et une poignée d'autres figures emblématiques de l'époque s'ennuyaient et décidèrent de jouer à un jeu très simple mais hilarant (enfin, ça, ils ne le savaient pas avant d'y jouer mais ils l'ont rapidement constaté). En groupe de 3 à 5 personnes, chacun écrit une partie d'une phrase sur un papier, le plie de façon à masquer ce qu'il/elle a écrit et passe le papier à son voisin, qui écrit la suite... sans connaître le début. La première phrase générée, le cadavre exquis boira le vin nouveau, donna son nom au jeu.
En s'inspirant du cadavre exquis, ce projet propose de piocher sujet, adjectif, verbe et complément dans une base de donnée, pour construire des phrases originales.
Un formulaire permet de rentrer une ou plusieurs valeurs. Si ces valeurs proposées par l'utilisateur sont nouvelles, elles sont ajoutées à la base de données pour compléter la collection de mots possibles.
Le projet tourne sous NodeJS avec un serveur Express.
Une doc swagger est disponible sur la route /api-docs.
Des logs complets et utils sont fournis grâce à :
La base de donnée est PostgreSQL. Pour gérer les migrations de type DDL sur la base de données, un Sqitch est mis en place. Le projet utilise le design pattern data mapper.
Ce projet a été l'occasion d'une initiation aux tests unitaires grâce à l'utilisation du package JEST.
Une validation des données entrées par les utilisateurs est faite via joi.
Cloner le projet
git clone git@github.com:AgathePons/cadavre_exquis.gitInstaller les dépendances
npm iCréer le fichier .env en se servant du .env.example.
Créer une base de donnée (en super user)
createdb ma_dbInstaller sqitch.
Créer le fichier sqitch.conf en se servant du sqitch.conf.example.
Deployer la base de données
sqitch deployVerifier la base de données
sqitch verifyRevenir en arrière
sqitch revertSeeder la base de données
psql -U <user> -d <dbname> -f data/import_data.sqlEn mode production
npm startEn mode dev
npm run devJouer les tests
npm testInitier le Sqitch
sqitch init nom_projet --engine pg --target db:pg:ma_bdd --top-dir migrations