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

https://github.com/valentinzoia/nest-rodri

🐱This project is a backend application built with NestJS that implements a role-based authentication and authorization system using JWT. It demonstrates how to design and structure a real-world backend with clean architecture principles, leveraging TypeORM for database management and migrations.
https://github.com/valentinzoia/nest-rodri

authentication authorization backend-development database-migrations jwt-authentication nestjs nodejs postgresql role-based-access-control task-management typeorm typescript

Last synced: about 1 month ago
JSON representation

🐱This project is a backend application built with NestJS that implements a role-based authentication and authorization system using JWT. It demonstrates how to design and structure a real-world backend with clean architecture principles, leveraging TypeORM for database management and migrations.

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
Discord
Backers on Open Collective
Sponsors on Open Collective
Donate us
Support us
Follow us on Twitter


## Description

[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

## 📌 Project Description
This project is a backend application built with NestJS that implements a role-based authentication and authorization system using JWT. It demonstrates how to design and structure a real-world backend with clean architecture principles, leveraging TypeORM for database management and migrations.

The application manages three main entities:

- Users – Registered members who can authenticate and access the system.
- Projects – Collaborative spaces that group users with different access levels.
- Tasks – Work items associated with projects, assigned to users and tracked through different statuses.

### 🔐 Authentication & Authorization

- JWT authentication for secure login and protected routes.
- Role and access level guards to enforce authorization rules at the route and service level.
- User–Project relationships handled with an access level enum (30, 40, 50), defining permissions.

### 🗄️ Database & Entities

- PostgreSQL database with TypeORM migrations.
- Example: tasks table with enum status (CREATED, IN_PROGRESS, FINISH).
- Proper relations between users, projects, and tasks.
- Database constraints and foreign keys ensure integrity.

### 🚀 Why this project?

This project highlights:

- Strong knowledge of NestJS modules, providers, and guards.
- Practical use of TypeORM with enums, relations, and migrations.
- Implementation of secure and scalable authentication & authorization patterns.
- Ability to design a backend system that could serve as the foundation for a project management tool (similar to Jira/Trello).

## Project setup

```bash
$ npm install
```

## Compile and run the project

```bash
# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod
```

## Run tests

```bash
# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

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

## Deployment

When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.

If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:

```bash
$ npm install -g @nestjs/mau
$ mau deploy
```

With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.

## Resources

Check out a few resources that may come in handy when working with NestJS:

- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).