Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/deadmanshadow/microservice-sleepr

Sleepr is a scalable, efficient, and modular NestJS microservice, integral to a larger application architecture.
https://github.com/deadmanshadow/microservice-sleepr

express jest joi mongodb mongoose nestjs

Last synced: 10 days ago
JSON representation

Sleepr is a scalable, efficient, and modular NestJS microservice, integral to a larger application architecture.

Awesome Lists containing this project

README

        


Nest Logo

[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
[circleci-url]: https://circleci.com/gh/nestjs/nest

A progressive Node.js framework for building efficient and scalable server-side applications.



NPM Version
Package License
NPM Downloads
CircleCI
Coverage
Discord
Backers on Open Collective
Sponsors on Open Collective

Support us


# Sleepr Microservice

A **microservice** built with the [NestJS](https://nestjs.com/) framework, designed for efficiency, scalability, and modularity. This microservice, named **Sleepr**, is part of a larger application architecture.

## Features

- **Efficient Architecture**: Built on the progressive Node.js framework, NestJS.
- **Modular Design**: Easily extensible and maintainable.
- **Integrated with MongoDB**: Utilizes Mongoose for seamless database interactions.
- **Logging with Pino**: Fast and structured logging for production environments.

## Technologies Used

- **NestJS**: A progressive Node.js framework for building efficient and scalable server-side applications.
- **TypeScript**: A typed superset of JavaScript that compiles to plain JavaScript.
- **MongoDB**: A NoSQL database for storing and retrieving data, integrated using Mongoose.
- **Mongoose**: An elegant MongoDB object modeling tool designed to work in an asynchronous environment.
- **Joi**: A powerful schema description language and data validator for JavaScript.
- **RxJS**: A library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code.
- **Pino**: A fast, low-overhead logging library, with Pino-HTTP and Pino-Pretty for enhanced logging capabilities.
- **ESLint**: A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript and TypeScript.
- **Prettier**: An opinionated code formatter to ensure consistent code style.
- **Jest**: A delightful JavaScript testing framework with a focus on simplicity.
- **Docker**: A platform to develop, ship, and run applications inside containers, used here for e2e testing.
- **Rimraf**: A deep deletion module for Node, used to clean up the build directory.
- **Express**: A minimal and flexible Node.js web application framework, providing a robust set of features for web and mobile applications.
- **Cookie-Parser**: Middleware to parse cookies attached to client requests.
- **Source-Map-Support**: Provides source map support for stack traces in node.js.

## Installation

```bash
$ pnpm install

# development
$ pnpm run start

# watch mode
$ pnpm run start:dev

# production mode
$ pnpm run start:prod

# unit tests
$ pnpm run test

# e2e tests
$ pnpm run test:e2e

# test coverage
$ pnpm run test:cov
```