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.git
Installer les dépendances
npm i
Créer le fichier .env
en se servant du .env.example
.
Créer une base de donnée (en super user)
createdb ma_db
Installer sqitch.
Créer le fichier sqitch.conf
en se servant du sqitch.conf.example
.
Deployer la base de données
sqitch deploy
Verifier la base de données
sqitch verify
Revenir en arrière
sqitch revert
Seeder la base de données
psql -U <user> -d <dbname> -f data/import_data.sql
En mode production
npm start
En mode dev
npm run dev
Jouer les tests
npm test
Initier le Sqitch
sqitch init nom_projet --engine pg --target db:pg:ma_bdd --top-dir migrations