Code Monkey home page Code Monkey logo

projectmanagement-nodejs's Introduction

Project Management Backend (Node.js)

This repository contains the backend application for a Project Management system built using Node.js.

Features

  • Authentication: User authentication using JWT tokens.
  • Hashing: Password encryption using bcrypt.
  • Validation: Input validation and handling.
  • Project Management: CRUD operations for managing projects.
  • Task Management: CRUD operations for managing tasks within projects.
  • User Management: CRUD operations for managing users.
  • Role-based Access Control: Different roles (admin, project manager, team member) with varying permissions.
  • Data Persistence: MySQL and Sequelize integration for storing project and user data.

Technologies Used

  • Node.js
  • Express.js
  • Sequelize
  • MySQL
  • JWT (JSON Web Tokens) for authentication
  • bcrypt for password hashing
  • node-input-validator
  • dotenv for environment variables
  • multer

Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js (v14 or higher)
  • Sequelize
  • MySQL

Installation

To run this application locally, you need to have Node.js, Sequelize and MySQL installed on your machine.

  1. Clone this repository:

    git clone https://github.com/satyansh-mittal/ProjectManagement-NodeJS.git
  2. Install dependencies:

    cd ProjectManagement-NodeJS
    npm install
  3. Set up environment variables:

    Create a .env file in the root directory and add the following variables:

    PORT=3000
    TOKEN_HEADER_KEY='Authorization'
    JWT_SECRET=your_jwt_secret_key
    
  4. Start the server:

    npm start
    

The server should now be running at http://localhost:3000.

  1. Ensure that the MySQL server is running and that the database specified in your /utils/index file is accessible or create a new database in MySQL.

API Endpoints

Admin Routes

  1. POST /admin/signUp: Create a new admin user.
  2. GET /admin/login: Admin user login.
  3. GET /admin/users: Retrieve all users (admin endpoint).
  4. POST /admin/addUser: Add a new user (requires authentication).
  5. GET /admin/projects: Retrieve all projects (admin endpoint).
  6. POST /admin/addProject: Add a new project (requires authentication).
  7. POST /admin/assignProjects: Assign projects to users (requires authentication).
  8. GET /admin/progress: Get project progress (requires authentication).

User Routes

  1. GET /user/login: User login.
  2. GET /user/profile: Retrieve user profile (requires authentication).
  3. PATCH /user/edit: Edit user profile (upload profile picture, requires authentication).
  4. GET /user/Projects: Retrieve projects for a user (requires authentication).
  5. POST /user/addProgress: Add progress to a project (requires authentication).

Contributing

Contributions are welcome! Fork the repository and submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Feel free to customize it further based on specific functionalities or additional information you want to highlight about your project.

projectmanagement-nodejs's People

Contributors

satyansh-mittal avatar

Stargazers

 avatar

Watchers

 avatar

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.