Skip to content

Yasindu20/Issue_Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

65 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› Issue Tracker

A modern, full-stack issue tracking application built with React and Node.js. This application provides comprehensive CRUD operations for managing software issues, bugs, and feature requests with a beautiful, responsive user interface.

✨ Features

Core Functionality

  • πŸ“ Issue Management: Create, read, update, and delete issues
  • πŸ” User Authentication: Secure JWT-based authentication system
  • πŸ‘₯ User Authorization: Role-based access control (User/Admin)
  • 🎯 Advanced Filtering: Search by title, description, status, and priority
  • πŸ“Š Dashboard Analytics: Visual statistics and recent issues overview
  • πŸ“± Responsive Design: Mobile-first, modern glassmorphism UI

Advanced Features

  • 🏷️ Tagging System: Organize issues with custom tags
  • πŸ“… Due Dates: Set and track issue deadlines with overdue indicators
  • πŸ‘€ Assignment System: Assign issues to team members
  • πŸ”„ Status Workflow: 5-stage status progression (Open β†’ In Progress β†’ Testing β†’ Resolved β†’ Closed)
  • ⚑ Priority Levels: 4 priority levels (Low, Medium, High, Critical)
  • πŸ” Real-time Search: Instant search with live filtering
  • πŸ“„ Pagination: Efficient handling of large datasets
  • 🎨 Modern UI/UX: Smooth animations, hover effects, and toast notifications

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern React with hooks and context
  • React Router v6 - Client-side routing
  • Axios - HTTP client for API calls
  • CSS3 - Custom styling with modern features (backdrop-filter, gradients)

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT - JSON Web Tokens for authentication
  • bcryptjs - Password hashing
  • CORS - Cross-origin resource sharing

Development Tools

  • Nodemon - Development server auto-restart
  • Create React App - React application setup
  • ESLint - Code linting

πŸ“ Repository Structure

issue-tracker/
β”œβ”€β”€ README.md
β”œβ”€β”€ .gitignore
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── database.js          # MongoDB connection configuration
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── auth.js              # JWT authentication middleware
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ User.js              # User model with authentication
β”‚   β”‚   └── Issue.js             # Issue model with validation
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.js              # Authentication routes (login/register)
β”‚   β”‚   └── issues.js            # Issue CRUD routes
β”‚   β”œβ”€β”€ package.json             # Backend dependencies
β”‚   β”œβ”€β”€ server.js                # Express server entry point
β”‚   └── .env                     # Environment variables (not in repo)
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ index.html           # Enhanced HTML with loading screen
β”‚   β”‚   β”œβ”€β”€ manifest.json        # PWA manifest
β”‚   β”‚   └── robots.txt           # SEO robots file
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ CustomDropdown.js    # Reusable dropdown component
β”‚   β”‚   β”‚   β”œβ”€β”€ CustomDropdown.css   # Dropdown styling
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.js            # Navigation component
β”‚   β”‚   β”‚   β”œβ”€β”€ ProtectedRoute.js    # Route protection HOC
β”‚   β”‚   β”‚   └── Toast.js             # Toast notification component
β”‚   β”‚   β”œβ”€β”€ contexts/
β”‚   β”‚   β”‚   β”œβ”€β”€ AuthContext.js       # Authentication state management
β”‚   β”‚   β”‚   └── ToastContext.js      # Toast notification state
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard.js         # Main dashboard with statistics
β”‚   β”‚   β”‚   β”œβ”€β”€ IssueList.js         # Issue listing with filters
β”‚   β”‚   β”‚   β”œβ”€β”€ IssueDetail.js       # Individual issue view/edit
β”‚   β”‚   β”‚   β”œβ”€β”€ CreateIssue.js       # Issue creation form
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.js             # User login form
β”‚   β”‚   β”‚   └── Register.js          # User registration form
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”‚   └── api.js               # Axios configuration and interceptors
β”‚   β”‚   β”œβ”€β”€ App.js                   # Main React component with routing
β”‚   β”‚   β”œβ”€β”€ App.css                  # Global styles and design system
β”‚   β”‚   β”œβ”€β”€ index.js                 # React app entry point
β”‚   β”‚   └── index.css                # Base CSS styles
β”‚   └── package.json                 # Frontend dependencies
└── docs/
    β”œβ”€β”€ API.md                       # API documentation
    β”œβ”€β”€ DEPLOYMENT.md                # Deployment guide
    └── CONTRIBUTING.md              # Contribution guidelines

πŸ“¦ Dependencies Backend Dependencies

"bcryptjs": "^3.0.2",           // Password hashing
"cors": "^2.8.5",               // Cross-origin resource sharing
"dotenv": "^17.2.0",            // Environment variable management
"express": "^4.18.2",           // Web framework
"jsonwebtoken": "^9.0.2",       // JWT token generation
"mongoose": "^8.16.4"           // MongoDB object modeling
"nodemon": "^3.1.10"           // Development server auto-restart

Frontend Dependencies

"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^13.5.0",
"axios": "^1.11.0",             // HTTP client for API calls
"react": "^19.1.0",             // UI library
"react-dom": "^19.1.0",         // React DOM rendering
"react-router-dom": "^7.7.0",   // Client-side routing
"react-scripts": "5.0.1",       // Build tools and configuration
"web-vitals": "^2.1.4"          // Performance metrics

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local installation or MongoDB Atlas)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/Yasindu20/Issue_Tracker.git
    cd issue-tracker
  2. Setup Backend

    cd backend
    npm install
    
    # Create environment file
    cp .env.example .env
    # Edit .env with your MongoDB URI and JWT secret
  3. Setup Frontend

    cd ../frontend
    npm install

Running the Application

  1. Start Backend Server

    cd backend
    npm run dev
    # Server runs on http://localhost:5000
  2. Start Frontend Development Server

    cd frontend
    npm start
    # Application opens at http://localhost:3000

Production Build

# Backend
cd backend
npm start

# Frontend
cd frontend
npm run build
# Creates optimized build in 'build' folder

πŸ“– Usage Guide

Getting Started

  1. Register a new account or login with existing credentials
  2. Dashboard provides an overview of all issues and statistics
  3. Create Issues using the "New Issue" button or navigate to /issues/new
  4. Browse Issues in the Issues page with advanced filtering options
  5. Manage Issues by clicking on any issue to view, edit, or delete

User Roles

  • Regular User: Can create, view, and edit their own issues
  • Admin: Full access to all issues and user management

Issue Workflow

Open β†’ In Progress β†’ Testing β†’ Resolved β†’ Closed

Filtering & Search

  • Text Search: Search across titles and descriptions
  • Status Filter: Filter by issue status with live counts
  • Priority Filter: Filter by priority levels
  • Sorting: Multiple sort options (date, title, priority)

πŸ”Œ API Documentation

Authentication Endpoints

POST /api/auth/register    # User registration
POST /api/auth/login       # User login
GET  /api/auth/me          # Get current user

πŸš€ Deployment

Frontend Deployment (Vercel)

Backend Deployment (Railway)



## 🎯 Performance Features

- **Lazy Loading**: Components loaded on demand
- **Pagination**: Efficient data loading
- **Debounced Search**: Optimized search performance
- **Caching**: API response caching with axios
- **Bundle Optimization**: Code splitting and tree shaking

## πŸ”’ Security Features

- **JWT Authentication**: Secure token-based authentication
- **Password Hashing**: bcrypt for secure password storage
- **Input Validation**: Server-side validation for all inputs
- **CORS Protection**: Configured for production security
- **XSS Prevention**: Sanitized inputs and outputs

## 🎨 Design System

The application uses a modern design system with:
- **CSS Custom Properties**: Consistent color palette and spacing
- **Glassmorphism**: Modern blur effects and transparency
- **Responsive Design**: Mobile-first approach
- **Accessibility**: WCAG compliant with proper focus management

## 🚦 Status

- βœ… **Core Features**: Complete
- βœ… **Authentication**: Complete  
- βœ… **CRUD Operations**: Complete
- βœ… **Search & Filter**: Complete
- βœ… **Responsive UI**: Complete

## πŸ“ž Support

For support, email yasindudemel@gmail.com or create an issue in the repository.

## πŸ™ Acknowledgments

- Design inspiration from modern issue tracking tools
- Icons from various emoji libraries
- CSS techniques from modern web development practices

---

**Built with ❀️ by Yasindu Dasanga De Mel**