This is a full-stack ticket submission portal application designed to streamline support requests. It allows users to submit tickets, which are then triaged and routed to the appropriate development team using a chatbot-like system powered by a language model (LLM). The application uses React for the frontend and FastAPI for the backend, with Auth0 handling authentication and authorization.
- Ticket Submission: Users can submit support tickets with detailed descriptions.
- Intelligent Ticket Triage: An LLM-powered system automatically categorizes and routes tickets to the relevant team (React, Java, Python, SQL).
- Role-Based Access Control: Access to features and API endpoints is controlled based on user roles (admin, developer, user) using Auth0.
- Secure Authentication: Auth0 integration ensures secure authentication and authorization.
- Detailed Ticket View: Displays comprehensive information for each ticket, including summary, technical analysis, suggested approach, and additional notes.
- API-First Architecture: Backend built with FastAPI, providing a robust and well-documented API.
- Modern Frontend: Developed with React and Tailwind CSS for a responsive and user-friendly interface.
-
Clone the repository:
git clone <repository_url> cd <project_directory>
-
Install backend dependencies:
cd backend pip install -r requirements.txt -
Install frontend dependencies:
cd frontend npm install -
Configure environment variables:
- Create a
.envfile in both thebackendandfrontenddirectories. - Populate the
.envfile with the required variables (see Environment Variables section below).
- Create a
-
Run the FastAPI server:
cd backend uvicorn main:app --reload -
Run the React frontend:
cd frontend npm start
- Frontend: Access the application in your browser at
http://localhost:3000(or the port specified in your React configuration). Log in using your Auth0 credentials. - API Endpoints: The backend provides REST API endpoints for ticket submission, retrieval, and status updates. Refer to the API reference (if available) for details. The frontend interacts with these API endpoints to manage tickets.
- Role-Based Access: Different user roles have access to different features. For example, only admins can close tickets.
The following environment variables are required:
Backend (.env):
AUTH0_DOMAIN: Auth0 domain.AUTH0_CLIENT_ID: Auth0 client ID.AUTH0_CLIENT_SECRET: Auth0 client secret.AUTH0_API_IDENTIFIER: Auth0 API identifier.MONGODB_URI: MongoDB connection string.OPENAI_API_KEY: OpenAI API Key
Frontend (.env):
REACT_APP_AUTH0_DOMAIN: Auth0 domain.REACT_APP_AUTH0_CLIENT_ID: Auth0 client ID.REACT_APP_AUTH0_AUDIENCE: Auth0 audience.REACT_APP_API_URL: URL of the backend API.
<Project Structure unavailable in code chunks>
- Backend: Python, FastAPI, MongoDB, LangChain
- Frontend: React, Tailwind CSS, Auth0, Axios
- Authentication: Auth0
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Submit a pull request to the main branch.
Please follow the existing code style and include unit tests for any new functionality.
If you encounter any issues or have questions, please open an issue on GitHub or contact the project maintainers directly.
MIT License