Coder Social home page Coder Social logo

hebertsanto / api-project-management Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 366 KB

API for project management, which has various functionalities related to projects, teams, objectives and much more.

License: MIT License

JavaScript 0.64% TypeScript 96.44% PLpgSQL 2.92%
api-rest commitlint docker eslint husky nest postgres prettier prisma typescript class-validator dto bcrypt jwt mailtrap nodemailer bcryptjs

api-project-management's Introduction

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: [email protected]

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

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

api-project-management's People

Contributors

hebertsanto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

xikaojr

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.