Skip to content

igmrrf/bugrelay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BugRelay - Public Bug Tracking Platform

A modern, scalable bug tracking platform that bridges the gap between users who discover bugs and companies who need to fix them.

πŸ“š Documentation

πŸš€ Live Documentation: http://localhost:3001/ (when running locally)

Our comprehensive documentation system includes:

Documentation Features

  • 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

Architecture

  • 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

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+ (for local development)
  • Go 1.21+ (for local development)

Development Setup

  1. Clone and setup the project:

    git clone <repository-url>
    cd bugrelay
    cp .env.example .env
  2. Start the development environment:

    # Start all services with Docker (recommended)
    make dev
  3. Access the application:

Environment Configuration

Copy the example environment file and configure as needed:

cp .env.example .env

Key environment variables:

  • DB_*: Database connection settings
  • REDIS_*: Redis connection settings
  • JWT_SECRET: JWT signing secret (change in production)

Available Commands

# 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 commands

Project Structure

bugrelay/
β”œβ”€β”€ 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

Development Workflow

  1. Database Changes: Add migration files in backend/migrations/
  2. API Development: Add handlers in backend/internal/handlers/
  3. Frontend Development: Add components in frontend/src/components/
  4. State Management: Use Zustand stores in frontend/src/store/
  5. Documentation: Auto-generated from code, manual updates in docs/

Documentation Updates

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

Features & Status

βœ… Production Ready

  • πŸ“š 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

πŸ”„ In Active Development

  • πŸ” 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

πŸ“‹ Planned 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

Migration Guide for Existing Developers

If you've been working with the previous setup, here's what changed:

What's New

  • Single Docker Compose file: Replaced multiple docker-compose.*.yml files
  • Unified environment: Single .env file instead of separate backend/.env
  • Simplified commands: Use make dev instead of complex script combinations
  • Profile-based deployment: Development and production use the same compose file with different profiles

Migration Steps

  1. Clean up old setup: Run make clean to remove old containers
  2. Update environment: Copy .env.example to .env and configure
  3. 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

Removed Files

  • docker-compose.dev.yml and docker-compose.prod.yml (consolidated into single file)
  • scripts/dev-start.sh, scripts/dev-stop.sh, scripts/deploy-prod.sh, scripts/setup-dev.sh
  • backend/.env (moved to root .env)

Contributing

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

Quick Contribution Steps

  1. Fork & Clone: Fork the repo and clone your fork
  2. Setup: Run make setup to install all dependencies
  3. Develop: Make your changes following our style guides
  4. Test: Run make test to ensure everything works
  5. Document: Update documentation if needed
  6. Submit: Create a pull request with a clear description

Areas We Need Help With

  • πŸ› 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

Community & Support

  • πŸ“– 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)

License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❀️ by the BugRelay team and contributors

About

A platform that lets users report bugs for any app, while companies can optionally claim their profiles and manage bug statuses.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages