CONNECT IT-Solutions
Table of Contents
Built With :
Getting Started
This is a list of needed instructions to set up your project locally, to get a local copy up and running follow these instructions.
-
Clone the repository.
-
cd into backend folder and create a file named "config.env" and fill it with this fields with your information.
NODE_ENV=dev
PORT=[PORT YOU WANT]
DATABASE=[CONNECTION STRING OF YOUR DATABASE]
USER=[DATABASE USER NAME]
DATABASE_PASSWORD=[YOUR DATABASE PASSWORD]
JWT_SECRET=[YOUR JWT SECRET STRING]
JWT_EXPIRES_IN=[DATE example: 1d "for one day"]
JWT_COOKIE_EXPIRES_IN=[DATE example: 1 "for one day"] -
Install Node js and npm
. Follow this article to install node js and npm -
cd backend && npm i && npm start
-
cd .. && cd frontend && npm i && npm start
Description
This website was implemented for an internship program at Safecotech Company.
It is a website for submitting and solving tickets in the IT industry.
The client could be a company or a person and he is able to submit a ticket to be viewed by website admins and then answered, look on solved tickets before to see if he can find a problem similar to his one or manage his own currently being answered tickets.
The admins can see pending tickets that are not assigned to any admin yet, manage their own current tickets that the admin is discussing with client about it or see the solved tickets to look for a problem that might be similar to the problem he is currently solving.
Each user has information like name, email, company name, password and maybe a photo. He can update his photo at any time, sign up new account, log in, log out and delete his account.
Each ticket could has attachments (supporting any file type), title, description, comments, category(Network, Service, System and Telecommunications), priority(Ordinary, Important and Critical), project, created at date, client and admin if he assigned himself to the ticket.
If any admin wants to answer a ticket, he can assign it to him and discuss with the client and send him answers.
If the client finds that his problem is solved, he can close it and the problem will be moved to the solved tickets and has its answer.
This website is developed in React js for the frontend and in Node js for the backend using MongoDB for the database.
Documentation
You can see a documentation video for the website at Youtube Video Documentation
You can look on the API documentation at API Documentation
You can look on the documentation as a pdf file at PDF Documentaion
Commit History
Screenshots
-
Log In with email and password.
-
Sign Up with name, email, company name(optional), password and Upload a user photo(optional).
-
Empty "manage your tickets" after Sign Up.
-
Submit a new ticket, Category could be "Service", "System", "Network", and "Telecommunications". Attachments could be files of any type.
-
Another client at manage your tickets.
-
A client can "Update image", "Log out" or "Delete account"
-
Logged in with an admin account, opened "pending tickets", and opened a ticket with attachments.
-
Opened another pending ticket(If any attachment extension is not for an image like ".pdf" the user can click on it to open a new tab and see or download the attachment).
-
Admin assigned the ticket to him by clicking on the fingerprint icon.
-
Ticket is moved to "manage your tickets" for the admin and status became "being solved".
-
An admin trying to solve another ticket with title: "Database is down" and added comments.
-
Client(Owner of "Database is down" ticket) added a comment.
-
The admin reached out to an answer and added it.
-
Client is satisfied with this answer and clicked on Close Ticket Icon(if he is not satisfied he can continue discussing with the admin to make the admin submit other answers).
-
Ticket status became solved, final answer is shown, and the ticket will be moved to "solved tickets" to be seen by other users.
-
Another client is looking on "solved tickets" and the recently solved ticket is there with the answer.
-
Filter Tickets(Filters could be applied at any where: "manage your tickets", "solved tickets" and "pending tickets").
-
Sort tickets on priority, status, and/or Created at date.
-
Choose the project, category and/or title to search with.
-
Applying sorting tickets on "Created at" date to be from old to new.
-
All pending tickets after applying the "Created at" date filter.
-
Update a user photo.
-
User's photo is updated.
Contributors
Frontend
Yousef Khaled |
Backend
Moaz Mohammed |