Skip to content

πŸ› Bug Tracker A comprehensive Bug Tracking and Quality Assurance system built with MERN stack that demonstrates both software development and testing practices.

License

Notifications You must be signed in to change notification settings

PranavHendre02/BugTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› Bug Tracker

A comprehensive Bug Tracking and Quality Assurance system built with MERN stack that demonstrates both software development and testing practices.

MongoDB Express.js React Node.js


πŸ“‹ Table of Contents


🎯 About the Project {#about}

Meta Bug Tracker is not just another bug tracking system - it's a meta application that tests itself, demonstrating the complete Software Testing Life Cycle (STLC) and Software Development Life Cycle (SDLC) in action.

What Makes It Unique?

  • πŸ”„ Self-Testing: The application tests its own features
  • πŸ“Š Real QA Metrics: Calculates Defect Density, Test Coverage, and Resolution Time
  • πŸ” Role-Based Access: Supports Tester, Developer, and Manager roles
  • βœ… Complete Bug Lifecycle: Enforces valid status transitions
  • πŸ§ͺ Integrated Testing: Manual + Automated testing in one system

Problem Statement

Traditional bug tracking systems are separate from the applications they test. This project integrates bug tracking, test case management, and quality metrics into a single cohesive system, making it ideal for learning and demonstrating software testing concepts.


✨ Key Features {#features}

πŸ” Authentication & Authorization

  • User registration with role selection (Tester/Developer/Manager)
  • Secure JWT-based authentication
  • Password encryption using BCrypt
  • Session persistence with localStorage
  • Role-based access control

πŸ› Bug Management

  • Create, Read, Update, Delete (CRUD) operations for bugs
  • Detailed Bug Information:
    • Title, Description
    • Severity (Low, Medium, High, Critical)
    • Priority (Low, Medium, High)
    • Status (New, Open, In Progress, Resolved, Closed, Reopened)
    • Steps to Reproduce
    • Expected vs Actual Behavior
  • Bug Lifecycle Management:
    • Enforced status transitions
    • Status history tracking with timestamps
    • Invalid transition prevention
  • Collaboration Features:
    • Assign bugs to users
    • Add comments with timestamps
    • Team collaboration
  • Advanced Filtering:
    • Filter by status, severity, assignee
    • Search by title/description
    • Real-time search

βœ… Test Case Management

  • Create comprehensive test cases
  • Execute tests (Pass/Fail/Blocked/Skipped)
  • Track test execution history
  • Link test cases to bugs
  • Test case types: Functional, UI, API, Performance, Security
  • Feature-based organization
  • Priority-based execution

πŸ“Š Dashboard & Metrics

  • Bug Metrics:
    • Total bugs count
    • Open vs Closed bugs
    • Bugs by severity distribution
    • Bugs by status distribution
    • Average resolution time (in hours)
  • Test Metrics:
    • Total test cases
    • Passed/Failed/Not Executed counts
    • Test coverage percentage
  • Quality Metrics:
    • Defect Density (bugs per 1000 LOC)
    • Open/Closed Ratio
  • Real-time Updates: Metrics update automatically

πŸ§ͺ Testing Features

  • Manual Testing: Execute test cases through UI
  • Automated Testing: Jest + Supertest for API testing
  • Test Reporting: Execution logs with timestamps
  • Meta-Testing: Test the application itself

πŸ› οΈ Tech Stack {#tech-stack}

Frontend

Technology Purpose
React.js UI library for building interactive interfaces
Tailwind CSS Utility-first CSS framework for styling
Lucide React Beautiful icon library
Context API State management for authentication
Fetch API HTTP requests to backend

Backend

Technology Purpose
Node.js JavaScript runtime environment
Express.js Web application framework
MongoDB NoSQL database for flexible data storage
Mongoose ODM for MongoDB schema validation
JWT Stateless authentication
BCrypt Password hashing and encryption
CORS Cross-origin resource sharing

Testing

Technology Purpose
Jest JavaScript testing framework
Supertest HTTP assertion library
Istanbul/NYC Code coverage reporting

πŸ—οΈ System Architecture {#architecture}

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                CLIENT LAYER                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚         React Application                 β”‚  β”‚
β”‚  β”‚  β€’ Components (Login, Dashboard, etc.)   β”‚  β”‚
β”‚  β”‚  β€’ Context API (Authentication)          β”‚  β”‚
β”‚  β”‚  β€’ Tailwind CSS (Styling)               β”‚  β”‚
β”‚  β”‚  β€’ Local Storage (Token Management)     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
            HTTP/REST API
         (JWT Token in Headers)
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               SERVER LAYER                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚        Express.js REST API                β”‚  β”‚
β”‚  β”‚  β€’ Routes (auth, bugs, tests, metrics)   β”‚  β”‚
β”‚  β”‚  β€’ Middleware (JWT verification)         β”‚  β”‚
β”‚  β”‚  β€’ Controllers (Business logic)          β”‚  β”‚
β”‚  β”‚  β€’ Validators (Input validation)         β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
           Mongoose ODM
        (Schema Validation)
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              DATABASE LAYER                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚           MongoDB Collections             β”‚  β”‚
β”‚  β”‚  β€’ users (User accounts & roles)         β”‚  β”‚
β”‚  β”‚  β€’ bugs (Bug reports & history)          β”‚  β”‚
β”‚  β”‚  β€’ testcases (Test cases & results)      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow Example: Creating a Bug

1. User fills bug form in React
   ↓
2. POST /api/bugs with bug data + JWT token
   ↓
3. Express receives request
   ↓
4. Middleware validates JWT token
   ↓
5. Controller validates bug data
   ↓
6. Mongoose saves to MongoDB bugs collection
   ↓
7. Response sent back with created bug
   ↓
8. React updates UI and shows success message

πŸ“¦ Installation {#installation}

Prerequisites

Before you begin, ensure you have the following installed:

Clone Repository

git clone https://github.com/YOUR-USERNAME/meta-bug-tracker.git
cd meta-bug-tracker

Backend Setup

  1. Navigate to backend folder:
cd backend
  1. Install dependencies:
npm install
  1. Create .env file:
# Create .env file in backend folder
touch .env

Add the following configuration:

# MongoDB Connection
MONGO_URI=mongodb://localhost:27017/bug-tracker

# For MongoDB Atlas, use:
# MONGO_URI=mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/bug-tracker?retryWrites=true&w=majority

# JWT Secret (Change in production!)
JWT_SECRET=your-super-secret-jwt-key-change-in-production

# Server Port
PORT=5000

# Environment
NODE_ENV=development
  1. Start MongoDB:

For Local MongoDB:

# Windows (Run as Administrator)
net start MongoDB

# macOS
brew services start mongodb-community

# Linux
sudo systemctl start mongod

For MongoDB Atlas: Ensure your cluster is running on cloud.mongodb.com

  1. Start backend server:
# Development mode (with auto-reload)
npm run dev

# Production mode
npm start

You should see:

πŸš€ Server running on port 5000
βœ… MongoDB Connected

Frontend Setup

  1. Navigate to frontend folder:
cd ../frontend
  1. Install dependencies:
npm install
  1. Start frontend:
# For Vite
npm run dev

# For Create React App
npm start

Frontend will open at:


πŸš€ Usage Guide {#usage}

First Time Setup

  1. Open the application in your browser
  2. Click "Register" to create a new account
  3. Fill in the registration form:
    • Name: Your name
    • Email: Your email
    • Password: Minimum 6 characters
    • Role: Select Tester, Developer, or Manager
  4. Click "Register" - You'll be automatically logged in
  5. Dashboard loads showing initial metrics (all zeros)

Creating Your First Bug

  1. Click "Bugs" in the sidebar
  2. Click "New Bug" button
  3. Fill in bug details:
    Title: Login page validation issue
    Description: The login form accepts empty password field
    Severity: High
    Priority: High
    Status: New
    Steps to Reproduce:
    1. Go to login page
    2. Enter email only
    3. Leave password empty
    4. Click login
    Expected: Error message shown
    Actual: Form submits
    
  4. Click "Create Bug"
  5. Bug appears in the bugs list!

Managing Bug Lifecycle

  1. Click on a bug to view details
  2. Click "Edit" to modify
  3. Change status following the workflow:
    • New β†’ Open
    • Open β†’ In Progress
    • In Progress β†’ Resolved
    • Resolved β†’ Closed
  4. Assign to a user (if you have multiple accounts)
  5. Add comments for collaboration
  6. View status history to see complete audit trail

Creating Test Cases

  1. Click "Test Cases" in sidebar
  2. Click "New Test Case"
  3. Fill in test details:
    Test ID: TC-001
    Title: Login with empty password
    Description: Verify error shown for empty password
    Feature: Authentication
    Type: Functional
    Priority: High
    Expected Result: Error message displayed
    
  4. Click "Create Test Case"

Executing Tests

  1. View test cases in the list
  2. Click "Pass" if test passes
  3. Click "Fail" if test fails
  4. System records:
    • Execution timestamp
    • Who executed it
    • Test result

Viewing Metrics

  1. Click "Dashboard" in sidebar
  2. View real-time metrics:
    • Bug counts and distributions
    • Test execution results
    • Quality metrics
  3. Analyze trends for project health

πŸ§ͺ Testing {#testing}

Running Automated Tests

cd backend
npm test

Test Coverage Report

npm test -- --coverage

Sample Test Output

 PASS  tests/auth.test.js
  Authentication API Tests
    POST /api/auth/register
      βœ“ should register a new user successfully (142ms)
      βœ“ should fail with missing fields (38ms)
      βœ“ should fail with duplicate email (76ms)
    POST /api/auth/login
      βœ“ should login with valid credentials (108ms)
      βœ“ should fail with invalid password (82ms)
      βœ“ should fail with empty credentials (29ms)

Test Suites: 1 passed, 1 total
Tests:       6 passed, 6 total
Snapshots:   0 total
Time:        2.456 s
Coverage:    85.4%

Test Case Examples

Positive Test:

it('should register a new user successfully', async () => {
  const userData = {
    name: 'Test User',
    email: 'test@example.com',
    password: 'password123',
    role: 'Tester'
  };

  const response = await request(app)
    .post('/api/auth/register')
    .send(userData)
    .expect(201);

  expect(response.body.success).toBe(true);
  expect(response.body.data.token).toBeDefined();
});

Negative Test:

it('should fail with invalid password', async () => {
  const response = await request(app)
    .post('/api/auth/login')
    .send({
      email: 'test@example.com',
      password: 'wrongpassword'
    })
    .expect(401);

  expect(response.body.success).toBe(false);
  expect(response.body.message).toBe('Invalid credentials');
});

πŸ“Š QA Metrics Explained {#metrics}

1. Defect Density

Formula:

Defect Density = (Total Bugs / Lines of Code) Γ— 1000

Example:

3 bugs / 5000 LOC Γ— 1000 = 0.60 bugs per 1000 LOC

Industry Standard: < 2.0 is considered good quality

What it measures: Code quality and testing effectiveness

2. Test Coverage

Formula:

Test Coverage = (Executed Tests / Total Tests) Γ— 100

Example:

8 executed / 10 total Γ— 100 = 80%

Industry Standard: > 80% is considered good coverage

What it measures: How much of the application is tested

3. Average Resolution Time

Formula:

Avg Resolution Time = Ξ£(Resolved Date - Created Date) / Total Resolved Bugs

Example:

(24h + 48h + 12h) / 3 bugs = 28 hours average

What it measures: Team efficiency in fixing bugs

4. Open/Closed Ratio

Formula:

Open/Closed Ratio = Open Bugs / Closed Bugs

Example:

5 open / 10 closed = 0.5

Interpretation:

  • < 1.0: Good - Bugs being fixed faster than reported
  • = 1.0: Neutral - Bug creation and resolution balanced
  • > 1.0: Warning - Bugs accumulating faster than being fixed

πŸŽ“ Syllabus Coverage {#syllabus}

This project comprehensively covers Software Testing & QA syllabus topics:

1. Software Testing Life Cycle (STLC)

STLC Phase Implementation in Project
Requirement Analysis Understanding bug tracker requirements
Test Planning Creating test strategy and test cases
Test Case Development TC-AUTH-001, TC-BUG-001, etc.
Test Environment Setup MongoDB + Node + React setup
Test Execution Manual execution via UI
Test Cycle Closure Metrics and reporting

2. Bug Life Cycle

NEW β†’ OPEN β†’ IN PROGRESS β†’ RESOLVED β†’ CLOSED
  ↓                                      ↓
  └──────────────REOPENEDβ†β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Enforced Transitions:

  • βœ… New β†’ Open (Valid)
  • βœ… Open β†’ In Progress (Valid)
  • ❌ New β†’ Closed (Invalid - Blocked by system)

3. Types of Testing

Type How Covered
Black Box Testing Testing UI without knowing code internals
White Box Testing Unit tests with Jest covering code paths
Integration Testing API tests with Supertest
System Testing End-to-end workflows (Register β†’ Create Bug β†’ Test)
Regression Testing Re-running tests after changes
Smoke Testing Basic health checks (login, create bug)
Sanity Testing Quick verification of specific functionality

4. Test Case Design Techniques

Equivalence Partitioning:

Valid Email: test@example.com βœ…
Invalid Email: testexample.com ❌

Boundary Value Analysis:

Title Length:
- 4 chars ❌ (Below minimum of 5)
- 5 chars βœ… (Boundary - Valid)
- 100 chars βœ… (Valid)

Decision Table Testing:

| Email  | Password | Expected Result |
|--------|----------|-----------------|
| Valid  | Valid    | Login Success   |
| Valid  | Invalid  | Login Fail      |
| Invalid| Valid    | Login Fail      |
| Invalid| Invalid  | Login Fail      |

5. Test Documentation

  • βœ… Test Plan (Project report)
  • βœ… Test Cases with steps
  • βœ… Test Execution logs
  • βœ… Bug reports with details
  • βœ… Metrics and reports

6. Defect Management

  • βœ… Defect logging
  • βœ… Defect tracking
  • βœ… Defect lifecycle
  • βœ… Defect metrics
  • βœ… Defect reporting

πŸ“ Project Structure {#structure}

meta-bug-tracker/
β”‚
β”œβ”€β”€ backend/                          # Backend server
β”‚   β”œβ”€β”€ models/                       # Mongoose schemas
β”‚   β”‚   β”œβ”€β”€ User.js                   # User model with auth
β”‚   β”‚   β”œβ”€β”€ Bug.js                    # Bug model with lifecycle
β”‚   β”‚   └── TestCase.js               # Test case model
β”‚   β”‚
β”‚   β”œβ”€β”€ routes/                       # API routes
β”‚   β”‚   β”œβ”€β”€ auth.js                   # Auth endpoints (register, login)
β”‚   β”‚   β”œβ”€β”€ bugs.js                   # Bug CRUD endpoints
β”‚   β”‚   β”œβ”€β”€ tests.js                  # Test case endpoints
β”‚   β”‚   └── metrics.js                # Dashboard metrics
β”‚   β”‚
β”‚   β”œβ”€β”€ middleware/                   # Custom middleware
β”‚   β”‚   └── auth.js                   # JWT verification
β”‚   β”‚
β”‚   β”œβ”€β”€ tests/                        # Automated tests
β”‚   β”‚   └── auth.test.js              # Authentication tests
β”‚   β”‚
β”‚   β”œβ”€β”€ .env                          # Environment variables
β”‚   β”œβ”€β”€ .gitignore                    # Git ignore rules
β”‚   β”œβ”€β”€ server.js                     # Express server entry point
β”‚   └── package.json                  # Dependencies & scripts
β”‚
β”œβ”€β”€ frontend/                         # React frontend
β”‚   β”œβ”€β”€ public/                       # Static files
β”‚   β”‚   └── index.html                # HTML template
β”‚   β”‚
β”‚   β”œβ”€β”€ src/                          # Source code
β”‚   β”‚   β”œβ”€β”€ App.jsx                   # Main React component
β”‚   β”‚   β”œβ”€β”€ main.jsx                  # React entry point
β”‚   β”‚   └── index.css                 # Tailwind CSS
β”‚   β”‚
β”‚   β”œβ”€β”€ .gitignore                    # Git ignore rules
β”‚   β”œβ”€β”€ package.json                  # Dependencies
β”‚   β”œβ”€β”€ tailwind.config.js            # Tailwind configuration
β”‚   └── vite.config.js                # Vite configuration
β”‚
β”œβ”€β”€ .gitignore                        # Root git ignore
└── README.md                         # This file

πŸ”Œ API Documentation {#api}

Base URL

http://localhost:5000/api

Authentication Endpoints

Register User

POST /auth/register
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "password123",
  "role": "Tester"
}

Response: 201 Created
{
  "success": true,
  "data": {
    "id": "64a1b2c3d4e5f6g7h8i9j0k1",
    "name": "John Doe",
    "email": "john@example.com",
    "role": "Tester",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

Login User

POST /auth/login
Content-Type: application/json

{
  "email": "john@example.com",
  "password": "password123"
}

Response: 200 OK
{
  "success": true,
  "data": {
    "id": "64a1b2c3d4e5f6g7h8i9j0k1",
    "name": "John Doe",
    "email": "john@example.com",
    "role": "Tester",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

Get Current User

GET /auth/me
Authorization: Bearer <token>

Response: 200 OK
{
  "success": true,
  "data": {
    "id": "64a1b2c3d4e5f6g7h8i9j0k1",
    "name": "John Doe",
    "email": "john@example.com",
    "role": "Tester"
  }
}

Bug Endpoints

Get All Bugs

GET /bugs?status=Open&severity=High&search=login
Authorization: Bearer <token>

Response: 200 OK
{
  "success": true,
  "count": 5,
  "data": [...]
}

Create Bug

POST /bugs
Authorization: Bearer <token>
Content-Type: application/json

{
  "title": "Login validation issue",
  "description": "Password field accepts empty input",
  "severity": "High",
  "priority": "High",
  "status": "New",
  "stepsToReproduce": "1. Go to login\n2. Leave password empty\n3. Click submit",
  "expectedBehavior": "Show error message",
  "actualBehavior": "Form submits"
}

Response: 201 Created
{
  "success": true,
  "data": { ... }
}

Update Bug

PUT /bugs/:id
Authorization: Bearer <token>
Content-Type: application/json

{
  "status": "In Progress",
  "assignedTo": "64a1b2c3d4e5f6g7h8i9j0k1"
}

Response: 200 OK
{
  "success": true,
  "data": { ... }
}

Add Comment

POST /bugs/:id/comments
Authorization: Bearer <token>
Content-Type: application/json

{
  "text": "Working on fixing this issue"
}

Response: 200 OK
{
  "success": true,
  "data": { ... }
}

Test Case Endpoints

Create Test Case

POST /tests
Authorization: Bearer <token>
Content-Type: application/json

{
  "testId": "TC-001",
  "title": "Login with empty password",
  "description": "Verify error shown",
  "feature": "Authentication",
  "type": "Functional",
  "priority": "High",
  "expectedResult": "Error message displayed"
}

Response: 201 Created
{
  "success": true,
  "data": { ... }
}

Execute Test Case

PUT /tests/:id/execute
Authorization: Bearer <token>
Content-Type: application/json

{
  "status": "Failed",
  "actualResult": "No error shown"
}

Response: 200 OK
{
  "success": true,
  "data": { ... }
}

Metrics Endpoints

Get Dashboard Metrics

GET /metrics/dashboard
Authorization: Bearer <token>

Response: 200 OK
{
  "success": true,
  "data": {
    "bugs": {
      "total": 10,
      "open": 5,
      "closed": 3,
      "resolved": 2,
      "avgResolutionTime": "24.50"
    },
    "tests": {
      "total": 15,
      "passed": 10,
      "failed": 3,
      "coverage": "86.67"
    },
    "quality": {
      "defectDensity": "2.00",
      "openClosedRatio": "1.67"
    }
  }
}

πŸ“Έ Screenshots {#screenshots}

Login Page

[Screenshot of login/register interface]

Dashboard

[Screenshot of dashboard with metrics]

Bug List

[Screenshot of bug list with filters]

Bug Details

[Screenshot of bug details page]

Test Cases

[Screenshot of test cases table]

πŸš€ Future Enhancements {#future}

Phase 1 (Short Term)

  • Email notifications for bug assignments
  • File upload for screenshots
  • Export reports to PDF
  • Advanced search with filters
  • Bulk operations (assign multiple bugs)

Phase 2 (Medium Term)

  • Cypress for E2E testing
  • Test automation framework integration
  • Bug templates
  • Custom workflows
  • API rate limiting

Phase 3 (Long Term)

  • CI/CD pipeline integration
  • Jira/GitHub integration
  • Real-time notifications (WebSockets)
  • Advanced analytics and charts
  • Mobile app (React Native)

🀝 Contributing {#contributing}

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Coding Standards

  • Follow ESLint rules
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation

πŸ“„ License {#license}

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

MIT License

Copyright (c) 2024 [Your Name]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

πŸ‘¨β€πŸ’» Author {#author}

[Your Name]


πŸ™ Acknowledgments

  • Professors and Mentors for guidance on Software Testing concepts
  • MongoDB for excellent NoSQL database
  • React Team for the amazing UI library
  • Express.js for simple and flexible backend framework
  • Tailwind CSS for beautiful styling utilities
  • Open Source Community for inspiration and learning resources

πŸ“ž Support

If you have any questions or need help with the project:


⭐ Show Your Support

Give a ⭐️ if this project helped you learn Software Testing and MERN stack development!


Made with ❀️ for Software Testing & QA Course


Quick Links


Last Updated: October 2025

About

πŸ› Bug Tracker A comprehensive Bug Tracking and Quality Assurance system built with MERN stack that demonstrates both software development and testing practices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages