Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


CRM Application

Description
A Project on CRM Back-End System
Project Title : CRM Application
Project by : Pallab Nandi


About

This is a backend application that provides RESTful APIs for user authentication, data management and email notification. It is built with Node.js, Express.js, JWT, MongoDB, Mongoose and Nodemailer.

Features

  • User registration and login with JWT authentication
  • CRUD operations for user and ticket data with MongoDB and Mongoose
  • Email notification system with Nodemailer and SMTP
  • Error handling and validation with Express middleware
  • Testing with POSTMAN



API Documentation

Tickets

1. GetAllTickets

Fetch all tickets

Endpoint:

Method: GET
Type: 
URL: {{URL}}/api/v1/tickets

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

2. GetTicketById

Fetch Ticket by Id

Endpoint:

Method: GET
Type: 
URL: {{URL}}/api/v1/tickets/643d365d8a9291fbe5f13de9

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

3. createTicket

Create a new ticket

Endpoint:

Method: POST
Type: RAW
URL: {{URL}}/api/v1/tickets

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

Body:

{
    "title" : "Can't open the course library",
    "description" : "I am not able to open the course library for study"
}

4. updateTicket

Update specific ticket

Endpoint:

Method: PUT
Type: RAW
URL: {{URL}}/api/v1/tickets/643d365d8a9291fbe5f13de9

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

Body:

{
    "ticketPriority" : 1,
    "status" : "IN_PROGRESS"
}

Users

1. GetAllUsers

Fetch all available users

Endpoint:

Method: GET
Type: 
URL: {{URL}}/api/v1/users

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

2. GetUserById

Fetch User according as Id

Endpoint:

Method: GET
Type: 
URL: {{URL}}/api/v1/users/643d2c6e2352db616306a637

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

3. addUser

Add new user to database

Endpoint:

Method: POST
Type: RAW
URL: {{URL}}/api/v1/users

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

Body:

{
    "name" : "test",
    "email" : "rideweg551@fitzola.com",
    "password" : "test",
    "userId" : "test"
}

4. updateUser

Update specific user

Endpoint:

Method: PUT
Type: RAW
URL: {{URL}}/api/v1/users/643d2c6e2352db616306a637

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

Body:

{
    "userStatus" : "APPROVED"
}

5. deleteUser

Delete specific user according as user ID

Endpoint:

Method: DELETE
Type: 
URL: {{URL}}/api/v1/users/643d2fadb71c08c1a7aa038e

Headers:

Key Value Description
x-access-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM

Auth

1. SignUp

Register new user to the system

Endpoint:

Method: POST
Type: RAW
URL: {{URL}}/api/v1/auth/signup

Body:

{
    "name" : "Pallab Nandi",
    "email" : "pallab@nandi.com",
    "userId" : "pallab",
    "password" : "test",
    "userType" : "ENGINEER"
}

2. LogIn

SignIn for exisiting user

Endpoint:

Method: POST
Type: RAW
URL: {{URL}}/api/v1/auth/signin

Body:

{
    "userId" : "admin",
    "password" : "admin@00"
}



Project Version

The current version of the application is v1.0.0

About

A backend system for CRM Application

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages