An open API service indexing awesome lists of open source software.

https://github.com/geozi/nodejs-typescript-contact-manager

Contains the backend implementation of a Contact Manager API.
https://github.com/geozi/nodejs-typescript-contact-manager

chai-as-promised expressjs jwt-authorization layered-architecture mocha-tests mongoosejs nodejs pino-logs restful-apis sinonjs typedoc

Last synced: 2 months ago
JSON representation

Contains the backend implementation of a Contact Manager API.

Awesome Lists containing this project

README

          

# nodejs-typescript-contact-manager

![Demo App](https://img.shields.io/badge/demo_app-blue)

## About the project

Contains the backend implementation of a Contact Manager API. It exposes REST APIs for contact and user profile management:

- User registration,
- User login,
- User profile update,
- User retrieval by username,
- User retrieval by email,
- User retrieval by role,
- Contact group creation,
- Contact group update,
- Contact group deletion,
- Contact group retrieval by name,
- Contact creation,
- Contact update,
- Contact deletion,
- Contact retrieval by email.

## Prerequisites

- Nodejs (v22.13.1)[^1],
- MongoDB.

## Testing

A thorough presentation of the tests conducted during development can be found in the [QA-test-plan](/QA-test-plan.md).

## Security

- **Authentication**: Single factor, local authentication.
- **Authorization**: JSON Web Token (JWT)

## Differences with previous Typescript projects

Compared to the [Task Manager API](https://github.com/geozi/nodejs-typescript-task-manager) project, the Contact Manager API project uses:

- a syntactical pattern for git commits similar to the one proposed in [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/):

`[optional scope]: `,

- [pino](https://github.com/pinojs/pino) for generating and saving log messages,
- api versioning,
- a common directory for all custom error classes to take advantage of class inheritance:

![Custom error class inheritance](img/custom_error_classes.png)

##

[^1]: According to the [Release Schedule](https://nodejs.org/en/about/previous-releases), Node.js v22 will enter its maintenance phase in the last quarter of 2025. During that period, it is recommended that the project should migrate to the latest active LTS version.