Plateforme de jurisprudences et de ressources juridiques à destination des professionel·les ou des citoyen·nes.
- Recherche de décisions de justice
- Accès à des fiches détaillées de chaque audience
- Visualisation temporelle des procédures
- NodeJS
- Docker ou Podman
- clonez le dépôts
- installez les dépendances
npm install - copiez
.env.examplevers.envet renseignez les variables manquantes - démarrez les services externes
docker compose up -doupodman compose up -d - démarrez l'application en mode dev
npm run dev
- jouez les migrations
node ace migration:run - ajoutez de la donnée factice
node ace db:seed
Si besoin vous pouvez remettre à zéro votre dase de données avec les commandes node ace db:wipe ou node ace migration:reset
et relancer les commandes de données ci-dessus.
Après votre première installation de NocoDB vous aurez besoin de configurer une connexion vers la base données de l'application.
Par défaut NocoDB est accessible via http://localhost:4444 (cf. compose.yaml)
- Allez dans integrations, puis ajoutez une integration pour Postgres :
- Host address : db
- Port number : 5432
- Username : la valeur de POSTGRES_USER dans
.env - Password : la valeur de POSTGRES_PASSWORD dans
.env - Database : le nom de la database dans
database/postgres-init/create-database.sql - Schema name : public
Pour faire les appels à l'API, il faudra également récupérer un API_TOKEN lié au compte utilisé pour administrer NocoDB.
- Sur l'interface d'administration, ouvrir le menu "API Tokens" en cliquant sur le compte (en bas à gauche)
- Ajouter un nouveau token pour l'appli AdonisJS
- Copier le token généré et le renseigner pour la valeur NC_API_TOKEN dans
.env
Si vous lancez Metabase pour la première fois vous aurez besoin de le configurer manuellement, un peu comme NocoDB.
Par défaut Metabase est accessible via le http://localhost:3000 (cf. compose.yaml)
Suivez les instructions pour créer un premier compte, puis allez dans Ajoutez vos données, choisissez PostgreSQL.
Pour gagner du temps vous pouvez renseigner la Connection string
- Connection string : jdbc:postgresql://db:5432/le_nom_de_votre_base_de_donnee (cf. .env ou database/postgres-init/create-database.sql)
- Nom d'utilisateur : la valeur de POSTGRES_USER dans
.env - Mot de passe : la valeur de POSTGRES_PASSWORD dans
.env
Le service mailpit du Docker Compose File est un serveur mail de développement, qui gère:
- les envois d'e-mail sur le port
1025 - la réception des e-mail, à travers un webmail accessible à l'adresse http://localhost:8025/
Sur ce projet, il y a deux stratégies de tests: tests unitaires appliqués à certaines méthodes et des tests d'intégration en e2e.
Les tests unitaires sont placés dans le répertoire `tests/unit/'.
Ils sont créés avec la commande node ace make:test <Nom du test>, en choisissant unit dans le prompt.
Ils sont lancés avec node ace test.
Étant donné que le projet suit une architecture MVC, les autres tests reposent sur une stratégie e2e avec PlayWright. Les tests d'intégrations sont placés dans le répertoire tests/browser/.
Initialiser PlayWright en installant les binaires des navigateurs headless:
npx playwright installLancer les tests
node ace testSi vous utiliser Podman vous aurez besoin de configurer testcontainer pour fonctionner avec
- Excuter
podman info --format '{{.Host.RemoteSocket.Path}}'en ligne de commande - Ajouter ceci à votre
.env
# TESTCONTAINERS PODMAN CONFIG
DOCKER_HOST={resultat_de_la_commande_podman}
TESTCONTAINERS_RYUK_DISABLED=true
TESTCONTAINERS_RYUK_PRIVILEGED=true
Le projet suit le plus possible la structure d'un projet AdonisJS.
Le framework offre un ensemble de commandes pour créer de nouveaux composants via la commande node ace
make
make:command Create a new ace command class
make:controller Create a new HTTP controller class
make:event Create a new event class
make:exception Create a new custom exception class
make:factory Make a new factory
make:listener Create a new event listener class
make:middleware Create a new middleware class for HTTP requests
make:migration Make a new migration file
make:model Make a new Lucid model
make:preload Create a new preload file inside the start directory
make:provider Create a new service provider class
make:seeder Make a new Seeder file
make:service Create a new service class
make:test Create a new Japa test file
make:validator Create a new file to define VineJS validators
make:view Create a new Edge.js template fileLe projet est construit sur une architecture MVC
- des models via l'ORM Lucid
- des vues via le moteur de template Edge
- des controlleurs
AdonisJs fournit une configuration par défaut pour ESlint et Prettier.