This project is an IT support service application built using web technologies, including React, Node.js, Express, and MySQL. It provides a platform for users to register, log in, submit support tickets, and interact with IT support agents. The project also integrates with Google and Microsoft for authentication.
- User Registration and Login
- Google and Microsoft OAuth Authentication
- User Ticket Submission and Tracking
- Admin Dashboard for Managing Tickets
- Real-time Chat & Notifications with Socket.io
- Payment Integration with Stripe(in test)
- Frontend: React, Tailwind CSS
- Backend: Node.js, Express, MySQL
- Authentication: Passport.js, Google OAuth, Microsoft OAuth
- Real-time: Socket.io
- Payments: Stripe
- Node.js
- MySQL locally: Optional - Aiven
-
Clone the repository:
git clone https://github.com/Iviichae7/RMN-Team-Project.git cd RMN-Team-Project
-
Install dependencies for both frontend and backend:
cd frontend npm install cd ../backend npm install
-
Set up your environment variables. Create a
.env
file in thebackend
directory and add the following:# Backend Environment Variables DB_HOST=database-host DB_USER=database-user DB_PORT=database-port DB_PASS=-database-password DB_NAME=database-name SESSION_SECRET=session-secret GOOGLE_CLIENT_ID=-google-client-id GOOGLE_CLIENT_SECRET=google-client-secret MICROSOFT_CLIENT_ID=microsoft-client-id MICROSOFT_CLIENT_SECRET=microsoft-client-secret STRIPE_SECRET_KEY=striple-secret-key STRIPE_PUBLIC_KEY=striple-public-key
-
Set up your environment variables. Create a
.env
file in thefrontend
directory and add the following:REACT_APP_STRIPE_PUBLIC_KEY=striple-public-key
To ensure the application runs successfully, set up the database schema using the schema.sql
file included in this repository.
-
Access your MySQL environment (locally or cloud-hosted).
-
Run the database schema.sql script.
schema.sql
To test the admin dashboard, you need to insert an admin user into the database. Run the following SQL command in your local env or cloud:
insert into Users (Email, password, role, First_Name, Second_Name) values
('Admin@rmn.ie', SHA2('1234', 256), 'admin', 'Admin', 'User');
-
Start the backend server:
cd backend nodemon .\server.js
-
Start the frontend development server:
cd frontend npm start
The application should now be running on http://localhost:3000, and the backend server should be running on http://localhost:3001.
- Special thanks to the team members who contributed to this project.
- Inspired by various projects and community.
Thank you.