Skip to content

Latest commit

 

History

History
126 lines (86 loc) · 3.97 KB

README.md

File metadata and controls

126 lines (86 loc) · 3.97 KB

API for project management

Build Status

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

Features

Authentication / security

  • Encrypt user passwords
  • Send email to confirm account
  • 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

  • It is possible to create an account
  • It is possible to find an account by ID
  • It is possible to delete an account

Profile

  • It is possible to have a profile
  • it is possible to find a profile by ID

Projects

  • User can create a project
  • User can list a project by ID
  • User can list all his projects
  • User can delete a project
  • User can follow projects
  • User can stop following projects

Project ideas

  • It is possibel create a project idea
  • It is possibel delete a project idea
  • It is possible update a project idea
  • It is possible to find all project ideas that you created

Project questions

  • User can add questions for a given project
  • User edit questions for a given project
  • User can delete questions from a given project
  • User can list all his created questions

Project objectives

  • User can add objectives for a given project
  • User edit objectives for a given project
  • User can delete objectives from a given project
  • User can list all his created goals

Project decisions

  • User can add decisions to a given project
  • User can update decisions for a given project
  • User can delete decisions for a given project
  • User can list a decision by ID
  • User can list all his decisions

Project updates

  • User can add updates to a given project
  • User can edit updates to a given project
  • User can delete updates to a given project
  • User can list an update by ID
  • User can list all their updates

Teams

  • User can create a team
  • User can list a team by ID
  • User can delete a team
  • 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: hebertsantosdeveloper@gmail.com

linkedin: https://www.linkedin.com/in/hebert-santos-241429243/

site : https://ihebert.vercel.app/