Camino API
API GraphQL de Camino: api.camino.beta.gouv.fr
Technologies
- Node.js
- Express.js
- PostgreSQL
- Express-GraphQL
- Knex.js
- Objection.js
- Eslint
- Prettier
- Standardjs
- Docker
Environnement
Pour que l'application fonctionne, sont requis:
- Node.js (v.10 ou plus) et npm
- Une base de données PostgreSQL (v.10 ou plus)
Configuration et imports des données
- Créer une base de données
camino
. - Renommer le fichier
.env.example
en.env
et le compléter.
# installe les dépendances
npm install
# importe les données au format .json
# depuis google spreadsheets vers './tools/sources'
npm run import
# crée les tables dans la base de données
# et importe les données depuis './tools/sources'
npm run migrate
# met à jour les données
npm run daily
Développement
# démarre le serveur avec nodemon
npm run dev
Tests
# lance les tests
npm run test
Structure des fichiers
.
├── docs # `documentation et exemples`
│
├── knex # `scripts de création et d'import de la base de données (npm run migrate)
│ ├── migrations # `création de la base de données`
│ └── seeds # `import depuis les fichier /sources vers la base de données`
│
├── sources # `sources de la base de données au format json. Générées avec npm run import.`
│
└── src # `fichiers sources. Transformés avec npm run build.`
├── index.js # `point d'entrée`
│
├── api # `API graphql`
│ ├── resolvers # `liens entre l'API et la base de données`
│ ├── schemas # `description des nœuds de l'API`
│ └── types # `types graphQl customs`
│
├── config #
│ ├── index.js # `variables globales`
│ └── knex.js # `connexion à la base de données`
│
├── database # `base de données PostgresQL`
│ ├── models # `modèles de la base de données (knex.js / objection.js)`
│ └── queries # `requêtes à la base de données (knex.js / objection.js)`
│
├── tasks # `logique métier`
│ ├── _utils # `scripts de mise à jour de la base de données`
│ ├── daily # `scripts quotidiens (npm run daily)`
│ └── etape-update # `script effectués lors de la mise à jour d'une étape`
│
└── tools # `outils`
├── export # `exportation de la base de données vers des spreadsheets (npm run export)`
├── import # `import de spreadsheets vers des fichiers json dans /sources (npm run import)`
├── mailer # `utilitaire d'envoi d'email (Nodemailer)`
└── utils #
PostgreSQL
Contribution
Voir contributing.md (en anglais) pour plus d'infos.
Crédits
Production
Équipe
- Guillaume Levieux, intrapreneur
- Joeffrey Arruyer, coach
- François Romain, développeur
Licence
Camino API, le cadastre minier numérique ouvert