This project is a request management system that allows users to create, delete, and view requests. It supports three types of users: Normal Users, Admin Users, and Support Agents. Admin users have additional privileges to manage requests and change their status. Support agents can communicate with normal users through a real-time chat feature.
- User Authentication: Secure login and signup with JWT token-based authentication.
- Request Management:
- Normal users can create, view, and delete their requests.
- Admin users can view all requests, delete them, and change their statuses.
- Real-Time Communication: WebSocket support for customer support interactions.
- MongoDB Database: Utilizes MongoDB for storing user and request data.
-
Clone the repository to your local machine:
git clone https://github.com/Dhruv-Bajaj-code/application_gas_utility.git
-
Navigate to the project directory:
cd application_gas_utility -
Install the required dependencies:
pip install -r requirements.txt
-
Set up your environment variables in a
.envfile. Example:JWT_SECRET_KEY=your-secret-key MONGODB_URI=your-mongodb-uri JWT_EXPIRATION=your-jwt-expiration-time
-
Run the development server:
uvicorn application_gas_utility.asgi:application --reload
- POST
/signup/: Create a new user. - POST
/login/: User login, returns a JWT token.
- POST
/create_request/: Create a new request. - GET
/get_requests/: Get all requests for the logged-in user. - DELETE
/delete_request/: Delete a specific request.
- POST
/admin/change_status/: Change the status of a request. - DELETE
/admin/delete_request/: Delete any request by its ID. - GET
/admin/get_requests/: Get all requests in the system.
- ws/chat/: A WebSocket connection for real-time chat between users and support staff.
Feel free to fork the repository and submit pull requests. Ensure that your contributions follow the coding standards of the project.