Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hebertzin/api-project-management
API for project management, which has various functionalities related to projects, teams, objectives and much more.
https://github.com/hebertzin/api-project-management
api-rest bcrypt bcryptjs class-validator commitlint docker dto eslint husky jwt mailtrap nest nodemailer postgres prettier prisma typescript
Last synced: 4 months ago
JSON representation
API for project management, which has various functionalities related to projects, teams, objectives and much more.
- Host: GitHub
- URL: https://github.com/hebertzin/api-project-management
- Owner: hebertzin
- License: mit
- Created: 2024-02-04T03:27:48.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-04-03T14:11:13.000Z (10 months ago)
- Last Synced: 2024-10-11T05:02:51.748Z (4 months ago)
- Topics: api-rest, bcrypt, bcryptjs, class-validator, commitlint, docker, dto, eslint, husky, jwt, mailtrap, nest, nodemailer, postgres, prettier, prisma, typescript
- Language: TypeScript
- Homepage:
- Size: 357 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### API for project management
[![Build Status](https://github.com/ErickWendel/testing-serverless-apps/workflows/Docker%20Actions/badge.svg)](https://github.com/ErickWendel/testing-serverless-apps/actions)
### project description
This is in principle a very challenging project as it involves many tables and many relationships,
developed from the beginning, starting with data modeling, then it was time to choose the technologies,
I chose to develop with nestjs because it is robust and because I wanted to learn more about it, I used Postgres as the database.### technologies used
- **Nest js** - Framework based on node js.
- **typescript** - By default, nest already comes with typescript.
- **Prisma** - ORM for relational databases.
- **Postgres** - Relational database.
- **Docker** – Containers to upload the database
- **Husky** - For commit routine, for example. Before making a commit, run tests or format the code.
- **Prettier** - To format the code and follow a pattern throughout the project
- **dbdiagram** - I used this software to model the data.### system modeling
![modelagem-sistema](https://github.com/hebertsanto/API-project-management/assets/108555424/5b154751-4d69-4624-80c3-67442052ea0b)## Features
### Authentication / security
- [x] Encrypt user passwords
- [x] Send email to confirm account
- [x] Validate email confirmation with token and change status in the database
- [ ] Email notifications
- [ ] Email templates in project
- [ ] Auth with github
- [ ] Reset password
- [ ] 2fa auth### User
- [x] It is possible to create an account
- [x] It is possible to find an account by ID
- [x] It is possible to delete an account### Profile
- [x] It is possible to have a profile
- [x] it is possible to find a profile by ID### Projects
- [x] User can create a project
- [x] User can list a project by ID
- [x] User can list all his projects
- [x] User can delete a project
- [x] User can follow projects
- [x] User can stop following projects
### Project ideas- [x] It is possibel create a project idea
- [x] It is possibel delete a project idea
- [x] It is possible update a project idea
- [x] It is possible to find all project ideas that you created### Project questions
- [x] User can add questions for a given project
- [x] User edit questions for a given project
- [x] User can delete questions from a given project
- [x] User can list all his created questions
### Project objectives- [x] User can add objectives for a given project
- [x] User edit objectives for a given project
- [x] User can delete objectives from a given project
- [x] User can list all his created goals### Project decisions
- [x] User can add decisions to a given project
- [x] User can update decisions for a given project
- [x] User can delete decisions for a given project
- [x] User can list a decision by ID
- [x] User can list all his decisions### Project updates
- [x] User can add updates to a given project
- [x] User can edit updates to a given project
- [x] User can delete updates to a given project
- [x] User can list an update by ID
- [x] User can list all their updates
### Teams- [x] User can create a team
- [x] User can list a team by ID
- [x] User can delete a team
- [x] User can edit team data
- [ ] User can invite participants by email### Relationships
This is a project where there are several relationships which is really cool, besides being challenging, you get a lot of learning
with relational databases.You can see all the relationships in the schema.prisma file,
I also provided a diagram where all the tables and relationships are.### conclusion
It's been a challenging project and good for my evolution as a developer, I'm facing several
challenges, solving them and acquiring a lot of knowledge.### contact
**email**: [email protected]
**linkedin**: [https://www.linkedin.com/in/hebert-santos-241429243/](https://www.linkedin.com/in/hebert-santos-241429243/)
**site** : [https://ihebert.vercel.app/](https://ihebert.vercel.app/)