Apfirebolt / service-desk-management-application-in-express-and-vue

A service desk management application written in MEVN stack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Service Desk Management Application

Vue.js TailwindCSS Express.js MongoDB HTML5 CSS3

Project Briefing

This is an Service Desk Management Software created in Vue, Express and MongoDB. Many corporations have their internal complaint resolution department for their employees to solve grievances. This is a sample app for one such hypothetical organization.

Built With

Authors

Project setup

Simply install node modules for both frontend and backend, the project is already configured to serve build content files in production which is generated by Vue which resides inside the build folder.

Concurrently, package is used for development and allows us to launch both frontend and back-end in one go using single command. Proxy is used for API calls made to the Express server inside the Vue application using the config file.

npm install
npm run dev

For production, build the frontend of the app and then run the backend app only.

npm run build
npm start

Database Architecture

The app contains users, complaints and departments models. Departments exist for segregation of complaints based on department. There is a 'userType' attribute inside user model aside from generic fields like email and password. This 'userType' field can have two enum values - Staff and Member.

Currently, admin is assigned the role of assigning complaints to 'staff' users. Admin can add a staff user and from complaints panel inside admin section can assign complaints to individual staff users. Staff users would have the leverage to alter the status of the complaints.

Department just have two fields - Name and Description which are self explanatory. Only Admin users have the privilege to perform CRUD operations on department model.

Project Features

  • Complaint System for Organization and people working within the organization.
  • Has an Admin Panel
  • Has a Staff Panel for users who are selected as staff by the admin user.
  • Users can add complaints and view status.
  • Complaints are segregated by department, CRUD on departments can be performed by admin.

Project Updates

  • 19/10/22 - Added SEO Dynamic Meta tags using Vue-Meta package.
  • 30/12/22 - Added Nginx conf file after testing. Build would be served with Nginx as reverse proxy
  • 1/1/23 - Replaced normal text area in complaint description with vue-editor, complaint description would now be displayed as HTML.

Deployment

The project is planned to be deployed using Nginx and reverse proxy. Frontend build would be served on port 80 by Nginx. We'd have our back-end API running on port 5000. We'd configure Nginx to route all the traffic that begins with '/api' to port 5000 where we have our API running. The configuration file for Nginx which would achieve this is included in the repo.

Project Screenshots

Screenshots would be added as progress is made with this application. Some pages of the admin pages are displayed below

alt text

Screenshot of the Profile page. User would land on this page after logging in.

alt text

Project Status

The most important features of the project is complete and ready to use. There is a possibility of adding minor features like adding comments for resolved complaints in the future. The project approximately took one week time for completion, I was working on other projects including my organisation projects as well meanwhile.

About

A service desk management application written in MEVN stack


Languages

Language:Vue 55.9%Language:JavaScript 43.7%Language:HTML 0.3%Language:CSS 0.0%