Welcome to the Developer Guide. As a developer, this guide helps you understand how you can set up the development environment. It is designed to provide you with the necessary information to effectively contribute to the project.
The main objectives of this guide are to:
BugSnapper is a web-based bug analysis tool built to support the SQLancer ecosystem by providing insights into bugs across open-source DBMSs like DuckDB, TiDB, and CockroachDB.
BugSnapper is built for learning, contribution, and practical impact in database testing — and there’s lots of room for you, as a developer, to shape where it goes next!
BugSnapper is built using a modern full-stack architecture, combining a responsive React frontend with a lightweight Python-based backend and a robust PostgreSQL database. Here’s an overview of the technologies powering the project:
| Layer | Technology |
|---|---|
| Frontend | React |
| Tailwind CSS | |
| Material UI | |
| Backend | FastAPI |
| SQLAlchemy | |
| OpenAI API | |
| GitHub API | |
| Database | PostgreSQL |
| Testing | Pytest |
| React Testing Library | |
| Deployment | Vercel (Frontend) |
| Render (Backend) |
BugSnapper is built using a modular architecture designed for maintainability and extensibility. The system follows a clear separation of concerns between the frontend, backend, and supporting services.
This section describes some noteworthy details on how certain features are implemented.
The Scheduler is a backend feature that automates Github bug data fetching and updating on a scheduled basis (e.g., weekly). This ensures that the BugSnapper always reflects the most accurate, relevant, and timely information without requiring manual intervention.
Auto Fetch GitHub Issues: Periodically pulls new issues from GitHub repositories and updates the Bugs List Page.
Sync Updates to Existing Issues: Refreshes existing bug data, such as:
Auto Update Visualizations: Keeps charts on the Visualisation Page current by updating the following charts:
This makes the Visualisation Page a reliable source of truth for data-driven decisions.
With the Scheduler:
Maintain ≥99.9% uptime with automated failover to redundant DB clusters during outages.
Compatible with GitHub issues from multiple DBMS including TiDB, DuckDB and CockroachDB.
Achieve less than 800ms average response time for API queries.
Implement automated regression testing achieving ≥90% test coverage for core classification algorithms through GitHub Actions workflows.
Given below are the planned enhancements for the application.
BugSnapper leverages AI across several key features:
To ensure these models remain effective as datasets evolve, we plan to:
This will improve the accuracy, contextual relevance, and trustworthiness of AI-generated content.
Currently, BugSnapper supports three major DBMS systems. To provide broader comparative insights, we plan to integrate additional DBMS options. This will allow users to analyze bug trends across a wider ecosystem and make more informed decisions for projects involving diverse database technologies.
Beyond GitHub, the platform aims to pull bug data from other reputable sources such as public bug trackers, DBMS vendor forums, or specialized issue aggregation sites.
Broadening the source pool will help capture a richer and more diverse set of bug reports, reducing source bias and improving overall bug coverage.
Currently, BugSnapper uses a fixed set of bug categories. The goal is to:
This enables deeper insights into specific issue types, improves filtering options, and helps users quickly zero in on areas of concern.
At present, BugSnapper's line chart visualization can suffer from cluttered axis labels—particularly along the month and year axis—when displaying a large number of data points within a single, static view. This makes it difficult for users to clearly interpret the timeline and trends over extended periods.
Visualisation ChartAs a future enhancement, we aim to improve the chart's usability by introducing a scrollable timeline or zoomable interface, allowing users to interactively explore the data in more manageable segments. This enhancement will not only improve readability but also enable more detailed and focused analysis, ensuring a smoother and more intuitive user experience when tracking bug trends over time.