Skip to content
Snippets Groups Projects
user avatar
Francois Romain authored
9204fec9
History

Camino API

Build Status

API GraphQL de Camino: api.camino.beta.gouv.fr


Technologies


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

camino database schema


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

AGPL 3 ou plus récent