Live Demo: https://bugflow-tracker.onrender.com
BugFlow is a lean, AI-powered bug tracking system designed for speed and clarity. It helps teams report issues and leverages LLMs to automatically triage them by category and severity.
- Modern UI: A clean, Linear-inspired dashboard built with React and Tailwind CSS.
- AI Triage: Automatically suggests bug category (UI, Backend, Performance) and severity (Low, Medium, High) using Google Gemini.
- State Enforcement: Strict workflow transitions (OPEN → IN_PROGRESS → RESOLVED → CLOSED).
- Mandatory Documentation: Requires resolution notes before a bug can be closed.
- Frontend: React 19 (Vite), Tailwind CSS 4
- Backend: Python (Flask)
- Database: SQLite (SQLAlchemy)
- AI: Google Gemini Pro API
- Production: Gunicorn (Web Server)
- Unified Service: To simplify deployment and reduce complexity, the Flask backend serves the compiled React production build.
- Absolute Paths: Used for SQLite database location to ensure data persistence across different deployment environments.
- Smart Fallback: Implemented a keyword-based triage layer that takes over if the AI model is unavailable or returns invalid data.
- Pragmatic Architecture: Avoided over-engineering by keeping logic concentrated in a few well-defined files (
app.py,services.py,models.py).
- Temperature Control: Set to
0.2to ensure deterministic and predictable triaging results. - Validation Layer: All AI outputs are validated against strictly defined schemas before being saved.
- Privacy: Only the bug title and description are sent to the LLM; no user or system metadata is exposed.
- File System: Uses a local SQLite file. For high-availability production, an external database (PostgreSQL) would be recommended.
- Authentication: Intentionally omitted to maintain the "lean" philosophy of the initial assessment project.
- Backend:
pip install -r backend/requirements.txtflask run(ensureGEMINI_API_KEYis inbackend/.env)
- Frontend:
cd frontend && npm install && npm run dev
- Structure: Clear separation between UI (React) and Logic (Flask). Backend logic is logically grouped by concern (
models,schemas,services). - Simplicity: Avoided complex state management or heavy middleware. Standard REST patterns make the code predictable.
- Correctness: The
BugServicestrictly enforces business rules, preventing invalid status transitions and ensuring closure requirements are met. - Interface Safety: Pydantic models guard every entry point, ensuring types are correct before they touch the database.
- Verification: Automated tests in
backend/tests/test_bugs.pyprove that core rules (like status flow) remain intact. - Observability: Added debug logging for AI triaging and comprehensive error handling for malformed JSON responses.
- AI Usage: Gemini Pro is used strategically for data enrichment (triage), with a robust validation layer and a deterministic fallback heuristic.