Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matheusmartinsviana/project-manager
π Project Manager is an API developed in node.js to manage users, projects and tasks. (With API and Integration Testing)
https://github.com/matheusmartinsviana/project-manager
backend database-integration mvc-architecture swagger-documentation
Last synced: 12 days ago
JSON representation
π Project Manager is an API developed in node.js to manage users, projects and tasks. (With API and Integration Testing)
- Host: GitHub
- URL: https://github.com/matheusmartinsviana/project-manager
- Owner: matheusmartinsviana
- License: mit
- Created: 2024-06-12T00:04:01.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-03T16:02:02.000Z (about 2 months ago)
- Last Synced: 2024-11-03T16:27:56.457Z (about 2 months ago)
- Topics: backend, database-integration, mvc-architecture, swagger-documentation
- Language: JavaScript
- Homepage: https://matheusmartinsviana.github.io/project-manager-documentation/
- Size: 239 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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)
- [Requirements](#requirements)
- [Entities](#entities)
- [Technologies Used](#technologies-used)
- [Project Structure](#project-structure)
- [Setup and Installation](#setup-and-installation)
- [Integration and API Tests](#integration-and-api-tests)## Relationships
![Relationships - Project Manager](https://github.com/matheusmartinsviana/project-manager/assets/146596878/7c9b2c21-5261-4f86-8d0b-60af12c7c0c3)
[Download Relationships Diagram](https://github.com/user-attachments/files/15796260/Relationships.-.Project.Manager.pdf)
## Requirements
Clarifying the project requirements is crucial for quality and accuracy in development.
[Download Project Requirements](https://github.com/user-attachments/files/15849351/Project.Manager.Requirements.pdf)
## Entities
### User
- ID (unique)
- Name
- 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**
```bash
git clone https://github.com/matheusmartinsviana/project-manager.git
cd project-manager
```2. **Install dependencies**
```bash
npm install
```3. **Configure the database**
Create a MySQL(But to deploy in rendering I needed to use PostgreSQL) database with the following details:
```plaintext
database: 'project-manager'
host: 'localhost'
username: 'root'
dialect: 'mysql'
```4. **Run the development server**
```bash
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)