Newer
Older
# Changelog service
## Features
This service allows end-users to keep track of the improvements that are applied to this project throughout its development. Such improvements are classified by three categories:
1. bugfixes
2. minor improvements
3. major improvements
Information is typically entered by developers and presented to end-users via a dedicated page of data.grandlyon.com Web Portal.
A record in the underlying database includes the following information:
* `_id`: a technical unique identifier (automatically generated);
* `md5`: a business unique identifier (automatically generated);
* `createDate`: a creation date (automatically generated);
* `updateDate`: an update date (automatically generated);
* `version`: the version of the Web Portal to which the record refers to;
* `bugFixes`: a list of bugfixes;
* `minorImprovements`: a list of minor improvements;
* `majorImprovements`: a list of major improvements;
* `language`: the language in which information is typed in, either French of English. In fact, each changelog event is entered twice, once in French, once in English, in order for the resulting log to be bilingual.
Bugfixes, minor and major improvements are simply modeled as strings of characters.
## Dependencies
This service has no dependency on other components.
This service exposes one single endpoint, `/changelog`, supporting all the CRUD methods in a RESTful fashion. An healthcheck endpoint is exposed as well, `/health`, returning a `200` HTTP code when all indicators are healthy, `503` in the opposite case. The service is considered to be healthy if the underlying database is up.

The service is implemented using the [NestJS](https://nestjs.com/) framework. We refer the reader to the [NestJS-based micro-services](../../miscellaneous/nestjs-micro-services.md) page for further details concerning the latter framework and the features it provides.
[MongoDB](https://www.mongodb.com/) is used for data persistence. Data modeling as well as connections to MongoDB are performed with [Mongoose](https://github.com/Automattic/mongoose).