Description
A Project on CRM Back-End System
Project Title : CRM Application
Project by : Pallab Nandi
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.
- 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
Fetch all tickets
Endpoint:
Method: GET
Type:
URL: {{URL}}/api/v1/ticketsHeaders:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Fetch Ticket by Id
Endpoint:
Method: GET
Type:
URL: {{URL}}/api/v1/tickets/643d365d8a9291fbe5f13de9Headers:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Create a new ticket
Endpoint:
Method: POST
Type: RAW
URL: {{URL}}/api/v1/ticketsHeaders:
| 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"
}Update specific ticket
Endpoint:
Method: PUT
Type: RAW
URL: {{URL}}/api/v1/tickets/643d365d8a9291fbe5f13de9Headers:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Body:
{
"ticketPriority" : 1,
"status" : "IN_PROGRESS"
}Fetch all available users
Endpoint:
Method: GET
Type:
URL: {{URL}}/api/v1/usersHeaders:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Fetch User according as Id
Endpoint:
Method: GET
Type:
URL: {{URL}}/api/v1/users/643d2c6e2352db616306a637Headers:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Add new user to database
Endpoint:
Method: POST
Type: RAW
URL: {{URL}}/api/v1/usersHeaders:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Body:
{
"name" : "test",
"email" : "rideweg551@fitzola.com",
"password" : "test",
"userId" : "test"
}Update specific user
Endpoint:
Method: PUT
Type: RAW
URL: {{URL}}/api/v1/users/643d2c6e2352db616306a637Headers:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Body:
{
"userStatus" : "APPROVED"
}Delete specific user according as user ID
Endpoint:
Method: DELETE
Type:
URL: {{URL}}/api/v1/users/643d2fadb71c08c1a7aa038eHeaders:
| Key | Value | Description |
|---|---|---|
| x-access-token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0M2QzNDI1MjRlODgxZjllYTViZGY2ZiIsInVzZXJJZCI6ImFkbWluIiwidXNlclN0YXR1cyI6IkFQUFJPVkVEIiwidXNlclR5cGUiOiJBRE1JTiIsImlhdCI6MTY4MTczMjY3MCwiZXhwIjoxNjgxODE5MDcwfQ.maZdzTngoMBnFXME3B7WlRQ5V8uTf7WonjutaKWCJOM |
Register new user to the system
Endpoint:
Method: POST
Type: RAW
URL: {{URL}}/api/v1/auth/signupBody:
{
"name" : "Pallab Nandi",
"email" : "pallab@nandi.com",
"userId" : "pallab",
"password" : "test",
"userType" : "ENGINEER"
}SignIn for exisiting user
Endpoint:
Method: POST
Type: RAW
URL: {{URL}}/api/v1/auth/signinBody:
{
"userId" : "admin",
"password" : "admin@00"
}The current version of the application is v1.0.0
