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.
- Host: GitHub
- URL: https://github.com/geozi/nodejs-typescript-contact-manager
- Owner: geozi
- Created: 2025-01-29T10:51:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-21T15:25:44.000Z (over 1 year ago)
- Last Synced: 2025-06-11T20:50:38.665Z (about 1 year ago)
- Topics: chai-as-promised, expressjs, jwt-authorization, layered-architecture, mocha-tests, mongoosejs, nodejs, pino-logs, restful-apis, sinonjs, typedoc
- Language: TypeScript
- Homepage:
- Size: 353 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# nodejs-typescript-contact-manager

## 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:

##
[^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.