A modern, scalable bug tracking platform that bridges the gap between users who discover bugs and companies who need to fix them.
π Live Documentation: http://localhost:3001/ (when running locally)
Our comprehensive documentation system includes:
- Quick Start Guide - Get up and running in minutes with complete examples
- API Reference - Complete REST API documentation with interactive examples
- Authentication Guide - JWT and OAuth implementation with code samples
- Data Models - Database schemas, relationships, and JSON schemas
- Deployment Guide - Docker, Kubernetes, and production setup instructions
- MCP Integration - AI system integration via Model Context Protocol
- Interactive Examples: Test API endpoints directly in the browser
- Auto-Generated Content: API docs generated from Go codebase
- Multi-Language Examples: Code samples in JavaScript, Python, Go, and curl
- Comprehensive Guides: Step-by-step tutorials for all major features
- Search & Navigation: Fast search and intuitive navigation
- Mobile Friendly: Responsive design for all devices
- Frontend: Next.js 15 with TypeScript and TailwindCSS
- Backend: Go with Gin framework
- Database: PostgreSQL with Redis for caching
- Authentication: JWT with OAuth integration (Google, GitHub)
- Documentation: VitePress with automated generation from codebase
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Go 1.21+ (for local development)
-
Clone and setup the project:
git clone <repository-url> cd bugrelay cp .env.example .env
-
Start the development environment:
# Start all services with Docker (recommended) make dev -
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Documentation: http://localhost:3001
- Health check: http://localhost:8080/health
Copy the example environment file and configure as needed:
cp .env.example .envKey environment variables:
DB_*: Database connection settingsREDIS_*: Redis connection settingsJWT_SECRET: JWT signing secret (change in production)
# Core Commands
make dev # Start development environment with hot reload
make prod # Start production environment
make stop # Stop all services
make clean # Remove containers and volumes
make logs # View logs from all services
make shell # Access backend shell for debugging
# Development Utilities
make seed # Seed database with sample data
make migrate # Run database migrations
make test # Run all tests
make build # Build production images
# Documentation
make docs # Start documentation server
make help # Show all available commandsbugrelay/
βββ frontend/ # Next.js frontend application
β βββ src/
β β βββ app/ # Next.js 13+ app directory
β β βββ components/ # Reusable React components
β β βββ lib/ # Utility functions
β β βββ hooks/ # Custom React hooks
β β βββ store/ # Zustand state management
β β βββ types/ # TypeScript type definitions
β βββ public/ # Static assets
β βββ package.json
βββ backend/ # Go backend application
β βββ internal/
β β βββ config/ # Configuration management
β β βββ database/ # Database connection and models
β β βββ redis/ # Redis client setup
β β βββ router/ # HTTP routing and middleware
β β βββ handlers/ # HTTP request handlers
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β βββ migrations/ # Database migration files
β βββ go.mod
β βββ main.go
βββ docs/ # VitePress documentation
β βββ api/ # API reference documentation
β βββ authentication/ # Auth guides and examples
β βββ deployment/ # Setup and deployment guides
β βββ guides/ # Tutorials and how-tos
β βββ models/ # Data model documentation
β βββ mcp/ # AI integration (MCP) docs
β βββ scripts/ # Documentation generation scripts
β βββ .vitepress/ # VitePress configuration
β βββ package.json
βββ docker-compose.yml # Docker services configuration
βββ package.json # Root package.json for scripts
- Database Changes: Add migration files in
backend/migrations/ - API Development: Add handlers in
backend/internal/handlers/ - Frontend Development: Add components in
frontend/src/components/ - State Management: Use Zustand stores in
frontend/src/store/ - Documentation: Auto-generated from code, manual updates in
docs/
The documentation system automatically generates API references from your Go code:
# After making backend changes, regenerate docs
cd docs
npm run generate:all
# Validate the generated documentation
npm run validate
# Preview changes locally
npm run dev- π Documentation System: Complete VitePress-based documentation with auto-generation
- ποΈ Development Environment: Full Docker-based development setup
- π Project Structure: Well-organized codebase with clear separation of concerns
- π§ Build System: Comprehensive Makefile and npm scripts for all operations
- π Guides & Examples: Extensive documentation with working code examples
- π€ AI Integration: Model Context Protocol (MCP) support for AI systems
- π Deployment Ready: Docker and Kubernetes deployment configurations
- π Authentication System: JWT and OAuth integration (Google, GitHub)
- π Bug Management: Core bug reporting and tracking functionality
- π’ Company Features: Organization verification and team management
- π₯ User Management: Registration, profiles, and permissions
- π¬ Comments & Voting: Community interaction features
- π Advanced Search: Full-text search with filters and sorting
- π§ Notifications: Email and in-app notification system
- π Webhooks: Integration with external systems
- π Analytics: Usage analytics and reporting dashboard
- π± Mobile App: Native mobile applications
- π API Versioning: Multiple API versions support
- π Advanced Security: Rate limiting, CAPTCHA, and abuse prevention
If you've been working with the previous setup, here's what changed:
- Single Docker Compose file: Replaced multiple
docker-compose.*.ymlfiles - Unified environment: Single
.envfile instead of separate backend/.env - Simplified commands: Use
make devinstead of complex script combinations - Profile-based deployment: Development and production use the same compose file with different profiles
- Clean up old setup: Run
make cleanto remove old containers - Update environment: Copy
.env.exampleto.envand configure - Use new commands:
- Old:
./scripts/dev-start.shβ New:make dev - Old:
./scripts/deploy-prod.shβ New:make prod - Old:
docker-compose -f docker-compose.dev.yml downβ New:make stop
- Old:
docker-compose.dev.ymlanddocker-compose.prod.yml(consolidated into single file)scripts/dev-start.sh,scripts/dev-stop.sh,scripts/deploy-prod.sh,scripts/setup-dev.shbackend/.env(moved to root.env)
We welcome contributions! Please see our Contributing Guide for detailed information on:
- Development Setup: Getting your environment ready
- Code Standards: Style guides for Go, TypeScript, and documentation
- Pull Request Process: How to submit changes
- Documentation: How to update and test documentation
- Testing: Running tests and validation
- Fork & Clone: Fork the repo and clone your fork
- Setup: Run
make setupto install all dependencies - Develop: Make your changes following our style guides
- Test: Run
make testto ensure everything works - Document: Update documentation if needed
- Submit: Create a pull request with a clear description
- π Backend Development: Go API development and testing
- π¨ Frontend Development: React/Next.js components and features
- π Documentation: Improving guides and adding examples
- π§ͺ Testing: Writing comprehensive tests
- π DevOps: Improving deployment and CI/CD processes
- π Documentation: Start with our Quick Start Guide
- π Bug Reports: Use GitHub Issues with the bug template
- π‘ Feature Requests: Use GitHub Issues with the feature template
- β Questions: Start a GitHub Discussion
- π¬ Chat: Join our Discord community (coming soon)
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by the BugRelay team and contributors