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
.env
file. 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.