Build a Production-Ready Ticketing System in Python
Budget: ₹100 – ₹400 INR
I need a clean, production-ready ticketing system written in Python that focuses on one core job: letting my team create and track bug-report tickets from submission to closure. All screens, endpoints, and data models should revolve around that single ticket type, so the workflow remains uncluttered.
Key behaviours
• Submit, edit, and change the status of a bug ticket (e.g., open → in progress → resolved → closed).
• View a chronological history of every status or field change so we always know who did what and when.
• Search and filter by status, assignee, creation date, or any custom field I add later.
• Optional file or screenshot upload. If the feature is toggled off the UI must hide the control gracefully, but the code path should still exist so I can enable it later without refactor.
• Basic permission model (admin vs. regular user) is enough for now; full authentication or analytics can wait for a later phase, but architect the code so those modules drop in cleanly.
Deliverables
1. Well-structured Python codebase following standard patterns (feel free to use Flask, Django, FastAPI—your strength determines the choice, just keep it documented).
2. Database schema and migration scripts.
3. Unit or integration tests that cover the critical ticket lifecycle.
4. Setup guide that lets me run the project locally and deploy to a typical Linux VPS with a single command.
5. Brief API or route documentation so another service can create a bug ticket programmatically.
Acceptance
I’ll spin up a fresh environment, follow your instructions, and create a bug ticket with and without an attachment. If the record appears, updates correctly through each status, and the history log matches the actions I take, we’re good.
Key behaviours
• Submit, edit, and change the status of a bug ticket (e.g., open → in progress → resolved → closed).
• View a chronological history of every status or field change so we always know who did what and when.
• Search and filter by status, assignee, creation date, or any custom field I add later.
• Optional file or screenshot upload. If the feature is toggled off the UI must hide the control gracefully, but the code path should still exist so I can enable it later without refactor.
• Basic permission model (admin vs. regular user) is enough for now; full authentication or analytics can wait for a later phase, but architect the code so those modules drop in cleanly.
Deliverables
1. Well-structured Python codebase following standard patterns (feel free to use Flask, Django, FastAPI—your strength determines the choice, just keep it documented).
2. Database schema and migration scripts.
3. Unit or integration tests that cover the critical ticket lifecycle.
4. Setup guide that lets me run the project locally and deploy to a typical Linux VPS with a single command.
5. Brief API or route documentation so another service can create a bug ticket programmatically.
Acceptance
I’ll spin up a fresh environment, follow your instructions, and create a bug ticket with and without an attachment. If the record appears, updates correctly through each status, and the history log matches the actions I take, we’re good.
Related categories:
PHP
JavaScript
Python
Software Architecture
Flask
Database Design
API Development
FastAPI