A full-stack ticket management system with real-time collaboration features. Built with FastAPI backend and React frontend, providing a Kanban-style interface for managing projects and tickets.
video.mp4
- Email-based OTP authentication with JWT tokens
- Project creation and management
- Kanban board with 5-stage workflow (Proposed → To Do → In Progress → Done → Deployed)
- Real-time updates via WebSocket connections
- Activity notifications and user tracking
- Super mode for enhanced user information display
- FastAPI - Modern Python web framework
- MongoDB - NoSQL Database
- WebSockets - Real-time communication
- JWT Token-based authentication
- Pydantic - Data validation and settings management
- React 19
- TypeScript
- Vite
- TailwindCSS
- React Router for Client-side routing
- Docker - Containerization with published images on Docker Hub
- Docker Compose - Multi-container orchestration
- Published Images:
https://hub.docker.com/r/adityaxxz/ticket-dashboard-frontendhttps://hub.docker.com/r/adityaxxz/ticket-dashboard-backend
- Python
- Node
- Docker and Docker Compose
- uv (install via pip) - I've used uv because, its rust based and 100x faster than pip.
Backend:
cd TICKET_DASHBOARD
uv venv
.venv\Scripts\activate
pip install -r requirements.txt
uvicorn backend.main:app --reloadFrontend:
cd frontend
npm install
npm run dev-
Download the production docker-compose file:
curl -o docker-compose.yml https://raw.githubusercontent.com/adityaxxz/ticket-dashboard/main/docker-compose.prod.yml
-
Start the application:
docker compose up
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
# Pull the images
docker pull adityaxxz/ticket-dashboard-backend:latest
docker pull adityaxxz/ticket-dashboard-frontend:latest
# Run with docker compose
docker compose up- Clone the Repo & Build and start all services:
docker compose up --build
- Access the application at http://localhost:3000
- Login with any email address
- Check logs for OTP code (development mode)
- Create projects and manage tickets through the Kanban interface
- Enable Super Mode with password
admin123for additional user information
DATABASE_URL= MongoDB URL starts with mongodb+srv://
JWT_SECRET= your-secret-key
SUPER_TOGGLE_PWD=admin123
MONGO_DB_NAME=ticket_dashboard
SUPER_TOGGLE_PWD=admin123
MAIL_USERNAME=sender_email
MAIL_PASSWORD=get_from_smtp_provider
MAIL_FROM=sender_emailVITE_API_URL=http://localhost:8000
change this to backend deployed urlPOST /auth/request-otp- Request OTP for emailPOST /auth/verify-otp- Verify OTP and get JWT tokenGET /auth/me- Get current user information
GET /api/projects- List all projectsPOST /api/projects- Create new projectGET /api/projects/{id}- Get project with ticketsPOST /api/tickets- Create new ticketPATCH /api/tickets/{id}- Update ticket
GET /api/activities- Get activity feedGET/POST /api/super-toggle- Manage super modeWS /ws/activity- WebSocket for real-time updates