A modern, real-time bug tracking and issue management platform built with a microservices architecture. Designed for teams that move fast β collaborate, track progress, and ship with confidence.
Demo Video Β· Report Bug Β· Request Feature
Quick product walkthrough for managers, founders, and technical recruiters.
- Screenshots
- Highlights
- Tech Stack
- Architecture
- Features
- Pages & Routes
- Getting Started
- API Reference
- Project Structure
- Docker Commands
- Roadmap
- Contributing
- License
- Contact
Real-time overview with total bug count, weekly trends, status distribution, and priority breakdown. Quick team insights and recent activity timeline.
Searchable issue table with multi-select filters, bulk status/priority updates, export to CSV/PDF, and inline editing. Assign, manage status, and track everything.
Manage organization details, API keys, notification preferences, and system-wide configurations. Full control over your organization's environment.
Invite team members, assign roles (Admin/Developer/Viewer), manage permissions, and track team statistics. See member details and update permissions on the fly.
|
π Full Authentication JWT + refresh tokens, OAuth (GitHub & Google), password reset, remember me |
π‘ Real-Time Updates Socket.IO powered live notifications β bugs, comments, and team activity stream instantly |
|
π’ Multi-Organization Create & switch between organizations, invite members, role-based permissions (Admin / Developer / Viewer) |
π Analytics Dashboard Status distribution, priority breakdown, assignee workload, recent activity timeline β all at a glance |
|
π Advanced Filtering Multi-select status, priority, assignee, labels, date range β with saveable filter presets |
β‘ Bulk Operations Select multiple issues β batch update status, priority, or delete in one action |
|
π File Attachments Upload, download, and manage file attachments on any bug |
π€ Export One-click export to CSV or PDF for reporting and audits |
| Layer | Technologies |
|---|---|
| Frontend |
|
| Backend |
|
| Database |
|
| DevOps |
|
| Validation |
|
βββββββββββββββββββββββββββββββββββ
β Next.js Frontend β
β (Port 3000 / Vercel) β
ββββββββ¬βββββββββββ¬ββββββββββββ¬βββββ
β β β
βββββββββββββΌβββ ββββββΌββββββ ββββΌβββββββββββββββ
β Auth Service β βBug Serviceβ βNotification Svc β
β (Port 5001) β β(Port 5002)β β (Port 5003) β
ββββββββ¬ββββββββ βββββββ¬ββββββ ββββββββββ¬βββββββββ
β β β
ββββββββΌβββββββββββββββββΌβββββββ ββββββββΌβββββββ
β PostgreSQL (Port 5432) β β Redis β
β Prisma ORM β β (Port 6379) β
βββββββββββββββββββββββββββββββββ βββββββββββββββ
| Service | Port | Responsibility |
|---|---|---|
| Auth Service | 5001 |
Registration, login, JWT + refresh tokens, OAuth (GitHub & Google), password reset |
| Bug Service | 5002 |
Bug CRUD, search, labels, comments, attachments, exports, bulk operations, statistics |
| Notification Service | 5003 |
Socket.IO WebSocket server β real-time broadcasts scoped per organization |
| Feature | Description |
|---|---|
| Email + Password | Register & login with validated credentials |
| OAuth | One-click sign in with GitHub or Google |
| JWT + Refresh Tokens | Automatic token refresh via Axios interceptors |
| Remember Me | Persistent sessions for returning users |
| Password Reset | "Forgot Password" flow with email reset link |
| Password Strength Meter | Visual 3-segment strength bar on signup |
| Feature | Description |
|---|---|
| Full CRUD | Create, view, edit, and delete bugs with detailed modals |
| Status Workflow | Open β In Progress β In Review β Closed |
| Priority Levels | Low Β· Medium Β· High Β· Critical β color-coded throughout |
| Assignees | Assign bugs to team members with avatar display |
| Comments | Threaded comment system on each bug |
| File Attachments | Upload, download, and delete files per bug |
| Labels | Color-coded labels β create, edit, assign to bugs |
| Search | Instant search by title or bug ID |
| Advanced Filters | Multi-select status, priority, assignee, labels, date range |
| Saved Filters | Save & load custom filter presets |
| Bulk Operations | Select multiple β batch update status, priority, or delete |
| Export | Download issues as CSV or PDF |
| Feature | Description |
|---|---|
| Overview Cards | Total bugs, new this week, closed this week, open bugs |
| Status Distribution | Animated progress bars β visual breakdown by status |
| Priority Breakdown | Card grid showing counts per priority level |
| Assignee Workload | Top 5 assignees ranked by bug count with avatars |
| Recent Activity | Timeline of latest bug actions β clickable links |
| Feature | Description |
|---|---|
| Member Directory | Card grid with avatars, roles, join dates |
| Invite Members | Send invitations to join your organization |
| Role Management | Assign roles: Admin / Developer / Viewer |
| Remove Members | Remove users with confirmation prompt |
| Team Stats | Total members, admins, bugs resolved, issues assigned |
| Feature | Description |
|---|---|
| Multi-Org Support | Create and switch between organizations |
| Org Settings | Edit name, description, manage configuration |
| API Key Management | Create, copy, and delete API keys per org |
| Notification Preferences | Toggle email & real-time notification settings |
| Feature | Description |
|---|---|
| Profile Editor | Edit first name, last name, email |
| Change Password | Current + new + confirm password flow |
| Member Since | Account creation date display |
| Feature | Description |
|---|---|
| Live Bug Updates | Instant toast + auto-refresh when bugs are created/updated/deleted |
| Live Comments | Comment threads update in real-time across all clients |
| Org-Scoped Broadcasts | Updates are scoped to your active organization |
| Route | Page | Description |
|---|---|---|
/ |
Landing Page | Hero section, feature grid, CTA, footer |
/auth/login |
Login | Email/password + OAuth + remember me |
/auth/signup |
Signup | Registration with password strength meter |
/auth/forgot-password |
Forgot Password | Email-based password reset flow |
/auth/callback |
OAuth Callback | Handles GitHub/Google OAuth redirect |
/dashboard |
Dashboard | Stats cards, charts, priority breakdown, activity feed |
/dashboard/issues |
Issues | Table view, search, filters, bulk actions, CRUD modals |
/dashboard/team |
Team | Member cards, invite, role management |
/dashboard/labels |
Labels | Color-coded label CRUD |
/dashboard/settings |
Settings | Org settings, notifications, API keys |
/dashboard/profile |
Profile | Personal info editor, password change |
| Tool | Version | Required |
|---|---|---|
| Node.js | 18+ | β |
| pnpm | Latest | β (recommended) |
| Docker & Docker Compose | Latest | β |
| PostgreSQL | 16+ | β (or via Docker) |
| Redis | 7.2+ | β (or via Docker) |
# 1. Clone the repository
git clone https://github.com/Git-brintsi20/Bug-tracker-SaaS.git
cd Bug-tracker-SaaS
# 2. Install frontend dependencies
pnpm install
# 3. Set up environment variables (see below)
# 4. Start all services with Docker
docker-compose up -d
# 5. Run database migrations
npx prisma generate
npx prisma migrate deploy
# 6. Start the frontend
pnpm devOpen http://localhost:3000 and you're all set! π
π Click to expand β All .env configurations
services/auth-service/.env
PORT=5001
DATABASE_URL="postgresql://postgres:postgres@postgres:5432/bugtracker"
JWT_SECRET=your-jwt-secret-here
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secretservices/bug-service/.env
PORT=5002
DATABASE_URL="postgresql://postgres:postgres@postgres:5432/bugtracker"
REDIS_URL=redis://redis:6379
JWT_SECRET=your-jwt-secret-hereservices/notification-service/.env
PORT=5003
REDIS_URL=redis://redis:6379
JWT_SECRET=your-jwt-secret-hereRoot .env.local
NEXT_PUBLIC_API_URL=http://localhost:5001/api
NEXT_PUBLIC_BUG_API_URL=http://localhost:5002/api
NEXT_PUBLIC_WS_URL=http://localhost:5003π Click to expand β Manual setup
- Start PostgreSQL and Redis manually
- Update
.envfiles to uselocalhost:DATABASE_URL="postgresql://postgres:postgres@localhost:5432/bugtracker"REDIS_URL=redis://localhost:6379
- Start each service in separate terminals:
# Terminal 1 β Auth Service
cd services/auth-service && npm install && npm run dev
# Terminal 2 β Bug Service
cd services/bug-service && npm install && npm run dev
# Terminal 3 β Notification Service
cd services/notification-service && npm install && npm run dev
# Terminal 4 β Frontend
pnpm devπ GitHub OAuth
- Go to GitHub Settings β Developer settings β OAuth Apps
- Create a new OAuth App
- Set callback URL:
http://localhost:5001/api/auth/github/callback - Copy Client ID & Secret to
services/auth-service/.env
π Google OAuth
- Go to Google Cloud Console β APIs & Services β Credentials
- Create OAuth 2.0 credentials
- Set redirect URI:
http://localhost:5001/api/auth/google/callback - Copy Client ID & Secret to
services/auth-service/.env
π Auth Service β Port 5001
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
User registration |
POST |
/api/auth/login |
User login β JWT + refresh token |
POST |
/api/auth/refresh |
Refresh access token |
POST |
/api/auth/logout |
Invalidate session |
GET |
/api/auth/me |
Get current user |
GET |
/api/auth/github |
Initiate GitHub OAuth |
GET |
/api/auth/google |
Initiate Google OAuth |
π Bug Service β Port 5002
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/bugs |
List all bugs (with filters) |
POST |
/api/bugs |
Create a bug |
GET |
/api/bugs/:id |
Get bug details |
PUT |
/api/bugs/:id |
Update a bug |
DELETE |
/api/bugs/:id |
Delete a bug |
GET |
/api/bugs/search |
Search bugs |
GET |
/api/bugs/statistics |
Bug statistics per org |
POST |
/api/bugs/:id/comments |
Add comment |
DELETE |
/api/bugs/:id/comments/:cid |
Delete comment |
POST |
/api/bugs/:id/attachments |
Upload attachment |
GET |
/api/bugs/:id/attachments/:aid |
Download attachment |
DELETE |
/api/bugs/:id/attachments/:aid |
Delete attachment |
POST |
/api/bugs/bulk/status |
Bulk update status |
POST |
/api/bugs/bulk/priority |
Bulk update priority |
POST |
/api/bugs/bulk/delete |
Bulk delete |
GET |
/api/bugs/export/csv |
Export as CSV |
GET |
/api/bugs/export/pdf |
Export as PDF |
Labels & Organizations β see full API in codebase at lib/api.ts
π‘ Notification Service β Port 5003
WebSocket events (Socket.IO):
| Event | Direction | Description |
|---|---|---|
bug:created |
Server β Client | New bug created in org |
bug:updated |
Server β Client | Bug was modified |
bug:deleted |
Server β Client | Bug was deleted |
comment:added |
Server β Client | New comment on a bug |
comment:deleted |
Server β Client | Comment removed |
Bug-tracker-SaaS/
β
βββ π app/ # Next.js App Router
β βββ π auth/ # Authentication pages
β β βββ login/ # Login form + OAuth
β β βββ signup/ # Registration + strength meter
β β βββ forgot-password/ # Password reset request
β β βββ callback/ # OAuth redirect handler
β β
β βββ π dashboard/ # Protected routes
β β βββ issues/ # Issue management
β β βββ team/ # Team member management
β β βββ labels/ # Label CRUD
β β βββ settings/ # Org settings & API keys
β β βββ profile/ # User profile & password
β β
β βββ layout.tsx # Root layout + providers
β βββ page.tsx # Landing page
β βββ globals.css # Global styles
β
βββ π components/ # React components
β βββ π auth/ # Auth cards & forms
β βββ π ui/ # shadcn/ui library (50+ components)
β βββ bug-detail-modal.tsx # Bug detail with tabs
β βββ create-bug-modal.tsx # New bug form
β βββ edit-bug-modal.tsx # Edit bug form
β βββ issue-table.tsx # Issues data table
β βββ advanced-filters.tsx # Filter modal with save/load
β βββ sidebar.tsx # Dashboard navigation
β βββ navbar.tsx # Landing page navbar
β βββ ... # Other components
β
βββ π hooks/ # Custom React hooks
β βββ useSocket.ts # Socket.IO connection
β βββ use-toast.ts # Toast notifications
β
βββ π lib/ # Utilities
β βββ api.ts # Axios client + all API calls
β βββ utils.ts # Helper functions
β
βββ π services/ # Backend microservices
β βββ auth-service/ # JWT auth + OAuth
β βββ bug-service/ # Bug management + Redis cache
β βββ notification-service/ # Socket.IO real-time
β
βββ π prisma/ # Database
β βββ schema.prisma # Data model
β βββ migrations/ # Migration history
β
βββ docker-compose.yml # Full stack orchestration
βββ package.json # Frontend dependencies
βββ tsconfig.json # TypeScript config
docker-compose up -d # Start everything
docker-compose up -d --build # Rebuild & start
docker-compose logs -f [service] # Tail logs
docker-compose down # Stop all
docker-compose down -v # Stop + wipe volumes- JWT authentication with refresh tokens
- OAuth (GitHub + Google)
- Full bug CRUD with detail modals
- Real-time updates via Socket.IO
- Multi-organization support
- Team management with roles
- Advanced filtering with saved presets
- Bulk operations (status, priority, delete)
- Comments & attachments
- Labels system
- CSV & PDF export
- Dashboard analytics
- Responsive design
- Production deployment (Vercel + Railway)
- Email notification system (SMTP)
- Kanban board view (components ready)
- Two-factor authentication (2FA)
- API rate limiting
- Automated test suite
- Activity audit log
- Webhook integrations
- Dark/Light theme toggle
Contributions, issues, and feature requests are welcome!
# 1. Fork the repo
# 2. Create your branch
git checkout -b feature/amazing-feature
# 3. Commit your changes
git commit -m "feat: add amazing feature"
# 4. Push to the branch
git push origin feature/amazing-feature
# 5. Open a Pull RequestDistributed under the MIT License. See LICENSE for more information.
Built with β€οΈ by @Git-brintsi20