matheusmartinsviana / project-manager

πŸ—ƒ Project Manager is an API developed in node.js to manage users, projects and tasks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Manager

Project Manager System is an application designed to assist in project production and proficiency, helping you achieve your objectives efficiently.

API Documentation


Project Manager API developed with Swagger

Swagger is an application that has many tools for developers, and one of the tools is that you can create API documentation

Table of Contents

Relationships

Relationships - Project Manager

Download Relationships Diagram

Requirements

Clarifying the project requirements is crucial for quality and accuracy in development.

Download Project Requirements

Entities

User

  • ID (unique)
  • Name
  • Email
  • Password (hash)
  • Creation Date

Project

  • ID (unique)
  • Name
  • Description
  • Creation Date
  • User ID (relationship with the User entity)

Task

  • ID (unique)
  • Title
  • Description
  • Creation date
  • Completion date (optional)
  • Status (pending, in progress, completed)
  • Project ID (relationship with the Project entity)

Technologies Used

  • Node.js
  • Express.js
  • JWT (JSON Web Token)
  • MySQL
  • Sequelize
  • Bcrypt
  • MVC Pattern
  • CORS
  • Nodemon (dev dependency)

Project Structure

project-manager/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ api/
β”‚ β”‚ β”œβ”€β”€ project.js
β”‚ β”‚ β”œβ”€β”€ task.js
β”‚ β”‚ └── user.js
β”‚ β”œβ”€β”€ controllers/
β”‚ β”‚ β”œβ”€β”€ project.js
β”‚ β”‚ β”œβ”€β”€ task.js
β”‚ β”‚ └── user.js
β”‚ β”œβ”€β”€ models/
β”‚ β”‚ β”œβ”€β”€ project.js
β”‚ β”‚ β”œβ”€β”€ task.js
β”‚ β”‚ └── user.js
β”‚ β”œβ”€β”€ routes/
β”‚ β”‚ β”œβ”€β”€ project.js
β”‚ β”‚ β”œβ”€β”€ task.js
β”‚ β”‚ └── user.js
β”‚ β”œβ”€β”€ middlewares/
β”‚ β”‚ └── authMiddleware.js
β”‚ β”œβ”€β”€ config/
β”‚ β”‚ └── database.js
β”‚ β”œβ”€β”€ app.js
β”‚ └── server.js
β”œβ”€β”€ package.json
└── README.md

Setup and Installation

Prerequisites

  • Node.js installed
  • MySQL installed and running

Steps

  1. Clone the repository

    git clone https://github.com/matheusmartinsviana/project-manager.git
    cd project-manager
  2. Install dependencies

    npm install
  3. Configure the database

    Create a MySQL database with the following details:

    database: 'project-manager'
    host: 'localhost'
    username: 'root'
    dialect: 'mysql'
    
  4. Run the development server

    npm run dev

Integration and API Tests

To see all tests you need change this branch to: bash Branch: tests

Tests Structure

project-manager/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ ...
β”‚ β”œβ”€β”€ tests/
β”‚ β”‚ β”œβ”€β”€ api/
β”‚ β”‚ | β”œβ”€β”€project.js
β”‚ β”‚ | β”œβ”€β”€ task.js
β”‚ β”‚ | └── user.js
β”‚ β”‚ β”œβ”€β”€ integration/
β”‚ β”‚ | β”œβ”€β”€project.js
β”‚ β”‚ | β”œβ”€β”€ task.js
β”‚ β”‚ | └── user.js

Technologies Used

  • Jest (dev dependency)
  • Supertest (dev dependency)

About

πŸ—ƒ Project Manager is an API developed in node.js to manage users, projects and tasks.

License:MIT License


Languages

Language:JavaScript 100.0%