2023-02-06 12:50:07 +00:00
# Mobicoop V3 - Territory Service
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
Territory data management.
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Requirements
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
You need [Docker ](https://docs.docker.com/engine/ ) and its [compose ](https://docs.docker.com/compose/ ) plugin.
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
You also need NodeJS installed locally : we **strongly** advise to install [Node Version Manager ](https://github.com/nvm-sh/nvm ) and use the latest LTS version of Node (check that your local version matches with the one used in the Dockerfile).
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
The API will run inside a docker container, **but** the install itself is made outside the container, because during development we need tools that need to be available locally (eg. ESLint, Prettier...).
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
A RabbitMQ instance is also required to send / receive messages when data has been inserted/updated/deleted.
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Installation
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
- copy `.env.dist` to `.env` :
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
```bash
cp .env.dist .env
```
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
Modify it if needed.
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
- install the dependencies :
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
```bash
npm install
```
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
- start the containers :
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
```bash
docker compose up -d
```
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
The app runs automatically on port **5004** .
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Database migration
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
Before using the app, you need to launch the database migration (it will be launched inside the container) :
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
```bash
npm run migrate
```
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Usage
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
TBD
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Messages
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
TBD
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
## Tests
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
Tests are run outside the container for ease of use (switching between different environments inside containers using prisma is complicated and error prone).
The integration tests use a dedicated database (see _db-test_ section of _docker-compose.yml_ ).
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
```bash
# run all tests (unit + integration)
npm run test
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
# unit tests only
npm run test:unit
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
# integration tests only
npm run test:integration
2023-02-06 08:38:18 +00:00
2023-02-06 12:50:07 +00:00
# coverage
npm run test:cov
```
2023-02-06 08:38:18 +00:00
## License
2023-02-06 12:50:07 +00:00
Mobicoop V3 - Territory Service is [AGPL licensed ](LICENSE ).