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.
- Frontend: AngelTech Frontend
- Backend: AngelTech API
Name | Description |
---|---|
bcrypt | A package library that us used to help has passwords. |
cookie-parser | Middleware used to parse cookies that are attached to a request made by the client to the server. |
cors | Middleware used to allow requests from specific origins as stated by the application. |
date-fns | Package used to manipulate dates into different formats. |
dotenv | Used to load API keys and MongoDB connection string from .env file. |
express | Web framework used to help create API. |
express-async-errors | Used to catch errors at runtime without excessive use of try/catch blocks in async functions. |
express-rate-limit | Rate-limiting middleware for express. Used to limit repeated requests to API endpoints and in the current project related to login attempts. |
jsonwebtoken | Package implementation of JSON Web Token (JWT). Used to maintain login state of an account. |
mongoose | Package 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-sequence | Package to create fields in a Mongoose model that will autoincrement the value (e.g ID for a User or for a Ticket). |
uuid | Package to create a random UUID. |
- 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 Gif
General
![]() |
![]() |
Admin Pages
![]() |
![]() |
![]() |
Customer Pages
![]() |
![]() |