Skip to content

A helpdesk application that allows users to login to an account, create tickets for technical issues, update tickets and admin users can create, delete and manage other user accounts. Client-side created using React. Server-side created using MongoDB for databse, Express.js and Node.js for API.

Notifications You must be signed in to change notification settings

HaylzRandom/angeltech-api

Repository files navigation

Angel Tech Helpdesk MERN Project

Table of Contents

Description

A helpdesk application that allows users to login to an account, create tickets for technical issues, update tickets and admin users can create, delete and manage other user accounts. Client-side created using React. Server-side created using MongoDB for databse, Express.js and Node.js for API.

Technologies

MongoDB Express.js React Node.js Redux JSON Web Token HTML5 CSS3 JavaScript

Linked Repositories

Packages

NameDescription
bcryptA package library that us used to help has passwords.
cookie-parserMiddleware used to parse cookies that are attached to a request made by the client to the server.
corsMiddleware used to allow requests from specific origins as stated by the application.
date-fnsPackage used to manipulate dates into different formats.
dotenvUsed to load API keys and MongoDB connection string from .env file.
expressWeb framework used to help create API.
express-async-errorsUsed to catch errors at runtime without excessive use of try/catch blocks in async functions.
express-rate-limitRate-limiting middleware for express. Used to limit repeated requests to API endpoints and in the current project related to login attempts.
jsonwebtokenPackage implementation of JSON Web Token (JWT). Used to maintain login state of an account.
mongoosePackage that provides a straight-forward, schema based solution to model application data for MongoDB. In this application is is used to connect to MongoDB instance and creating the models for Tickets and Users.
mongoose-sequencePackage to create fields in a Mongoose model that will autoincrement the value (e.g ID for a User or for a Ticket).
uuidPackage to create a random UUID.

Roadmap

  • When deleting a user, checked if there are any open tickets attached to them
  • Redirect user if they should have have access to ticket
  • Redirect user if they should have have access to profile
  • When creating a customer user, add a company to their account
  • Research if a cleaner method for pre-populating customer exists when creating ticket
  • Set last logged in date and time on user dashboard
  • Create a custom loading spinner
  • Redesign website layout with new styles
  • Add a note system to tickets
  • Allow users to alter their own passwords (Only Admins and Managers can alter passwords)
  • When tickets are updated, send an e-mail out
  • Implement TypeScript when more comfortable with it

Demo

Demo Website

Demo Gif

Demo Gif

Screenshots

General
Homepage Screenshot Login Page Screenshot

Admin Pages
Admin Dashboard Screenshot Users List Screenshot
New User Creation Screenshot

Customer Pages
Customer Tickets Page Screenshot Creation of a Ticket Screenshot

About

A helpdesk application that allows users to login to an account, create tickets for technical issues, update tickets and admin users can create, delete and manage other user accounts. Client-side created using React. Server-side created using MongoDB for databse, Express.js and Node.js for API.

Topics

Resources

Stars

Watchers

Forks