Skip to content

AmulyaJain2004/CtrlX_Error

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐞 CtrlX - Bug Tracking System

A scalable and full-stack MERN-based bug tracking application to streamline software issue management, resolution, and reporting for development teams.

MIT License React Node MongoDB Contributions Welcome


πŸš€ Overview

CtrlX is a role-based bug tracking system designed for developers, testers, and project managers to report, assign, and resolve bugs collaboratively. The project supports real-time tracking, email notifications, PDF/CSV export, file uploads, and an interactive dashboard.

πŸ“ Live Demo: Ctrl_X-Error

🎨 Figma Design: Figma UI Design


Setup Instructions

Setting up the Backend

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    npm install
  3. Create a .env file in the backend directory with the following variables:

    PORT=8000
    NODE_ENV=development
    JWT_SECRET=your_jwt_secret_key_change_this_in_production
    MONGO_URI=mongodb://localhost:27017/bugtracker
    CLIENT_URL=http://localhost:5173
    
    # Email configuration (Configure these to enable email sending)
    EMAIL_SERVICE=gmail
    [email protected]
    EMAIL_PASSWORD=your_app_password
    [email protected]
    
    # Admin configuration
    ADMIN_INVITE_TOKEN=secret_admin_token_change_this
  4. Start the backend server:

    npm run dev

Setting up the Frontend

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the frontend development server:

    npm run dev

🧠 Features

  • πŸ” Authentication & RBAC (JWT-secured, role-based access)
  • πŸ› Bug Lifecycle Management
  • πŸ“₯ File Attachments (screenshots, logs)
  • πŸ“¨ Email Notifications (via Nodemailer)
  • πŸ” Advanced Filtering (priority, status, date, assignee)
  • πŸ“Š Real-Time Dashboard
  • πŸ“„ Bug Report Export (PDF & CSV)
  • 🌐 Responsive UI with Tailwind CSS

🎯 Use Cases

  • Developers can track and resolve bugs assigned to them.
  • Testers can report bugs with evidence.
  • Managers can monitor bug resolution and generate reports.

πŸ“Œ Tech Stack

Layer Technologies
Frontend React 18, Tailwind CSS, React Router, Vite
Backend Node.js, Express.js, JWT, Nodemailer, Multer
Database MongoDB with Mongoose ORM
Testing Postman
Deployment Vercel
Dev Tools Git, GitHub, Figma

πŸ”§ Project Structure

Directory structure:
rishy-09-ctrlx_error/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ bugController.js
β”‚   β”‚   β”œβ”€β”€ chatController.js
β”‚   β”‚   β”œβ”€β”€ reportController.js
β”‚   β”‚   └── userController.js
β”‚   β”œβ”€β”€ middlewares/
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   β”œβ”€β”€ authmiddleware.js
β”‚   β”‚   └── uploadMiddleware.js
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ Bug.js
β”‚   β”‚   β”œβ”€β”€ Chat.js
β”‚   β”‚   β”œβ”€β”€ Message.js
β”‚   β”‚   └── User.js
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ bugRoutes.js
β”‚   β”‚   β”œβ”€β”€ chatRoutes.js
β”‚   β”‚   β”œβ”€β”€ reportRoutes.js
β”‚   β”‚   └── userRoutes.js
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── aiService.js
β”‚   β”œβ”€β”€ uploads/
β”‚   β”‚   └── 1743857317797-profile.jpg
β”‚   β”œβ”€β”€ package-lock.json
β”‚   β”œβ”€β”€ package.json
β”‚   └── server.js
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ FinalReport.pdf
β”‚   β”œβ”€β”€ LiveWebsiteLink_Deployment_&_Integrations.pdf
β”‚   β”œβ”€β”€ PreFinalReport.pdf
β”‚   β”œβ”€β”€ Presentation.pdf
β”‚   β”œβ”€β”€ ProjectRiskAnalysisSurvey.xlsx
β”‚   β”œβ”€β”€ RisksAnalysisReport.pdf
β”‚   β”œβ”€β”€ SRS.pdf
β”‚   └── StudentFeedbackQuestionnaire_AI_in_Software_Engineering_Projectsform_Responses.xlsx
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ 4882066.jpg
β”‚   β”‚   β”œβ”€β”€ logo.png
β”‚   β”‚   └── vite.svg
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”‚       β”œβ”€β”€ Amulya.jpeg
β”‚   β”‚   β”‚       β”œβ”€β”€ auth-bg.jpeg
β”‚   β”‚   β”‚       β”œβ”€β”€ bug_tracking.jpg
β”‚   β”‚   β”‚       β”œβ”€β”€ Naman.png
β”‚   β”‚   β”‚       β”œβ”€β”€ Smriti.jpeg
β”‚   β”‚   β”‚       └── Soumya.jpeg
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ Cards/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BugCard.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ InfoCard.jsx
β”‚   β”‚   β”‚   β”‚   └── UserCard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Charts/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CustomBarChart.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CustomLegend.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CustomPieChart.jsx
β”‚   β”‚   β”‚   β”‚   └── CustomToolTip.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ chat/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatInput.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatMessages_fixed.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatMessages.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatSettingsModal.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatSidebar.jsx
β”‚   β”‚   β”‚   β”‚   └── CreateChatModal.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Inputs/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AddAttachmentsInput.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Input.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ProfilePhotoSelector.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SelectDropdown.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SelectUsers.jsx
β”‚   β”‚   β”‚   β”‚   └── ToDoListInput.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AuthLayout.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ DashboardLayout.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚   β”‚   └── SideMenu.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AvatarGroup.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ BugListTable.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ BugStatusTabs.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DeleteAlert.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Modal.jsx
β”‚   β”‚   β”‚   └── Progress.jsx
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”‚   β”œβ”€β”€ ChatContext.jsx
β”‚   β”‚   β”‚   └── userContext.jsx
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”‚   └── useUserAuth.jsx
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ Admin/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AdminDashboard.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CreateBug.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ManageBugs.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ManageUsers.jsx
β”‚   β”‚   β”‚   β”‚   └── ViewBugAdmin.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx
β”‚   β”‚   β”‚   β”‚   └── Signup.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Developer/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AssignedBugs.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ DeveloperDashboard.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UpdateBugStatus.jsx
β”‚   β”‚   β”‚   β”‚   └── ViewAssignedBug.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Tester/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AllBugs.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CreateBug.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MyBugs.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ TesterDashboard.jsx
β”‚   β”‚   β”‚   β”‚   └── ViewBugDetails.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ChatPage.jsx
β”‚   β”‚   β”‚   └── LandingPage.jsx
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”‚   └── PrivateRoute.jsx
β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”‚   β”œβ”€β”€ apiPaths.js
β”‚   β”‚   β”‚   β”œβ”€β”€ axiosInstance.js
β”‚   β”‚   β”‚   β”œβ”€β”€ data.js
β”‚   β”‚   β”‚   β”œβ”€β”€ helper.js
β”‚   β”‚   β”‚   └── uploadImage.js
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ eslint.config.js
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ package-lock.json
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ README.md
β”‚   β”œβ”€β”€ vercel.json
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ .gitignore
└── README.md

βš™οΈ API Endpoints

Method Endpoint Description Auth
POST /api/auth/register Register user Public
POST /api/auth/login Login + Token Public
GET /api/users Fetch all users Admin
GET /api/users/:id Fetch user by ID βœ…
POST /api/bugs Report a bug βœ…
GET /api/bugs List all bugs βœ…
GET /api/bugs/:id View single bug βœ…
PUT /api/bugs/:id Update bug βœ…
DELETE /api/bugs/:id Delete bug Admin
POST /api/comments Add comment βœ…
GET /api/comments/:bugId View comments βœ…
POST /api/attachments Upload file βœ…
GET /api/attachments/:bugId View attachments βœ…

πŸ“‹ User Guide

πŸ‘€ Roles & Access

  • Admin: Manage users, assign bugs, delete reports.
  • Developer: View & resolve assigned bugs.
  • Tester: Report bugs, add evidence.
  • Manager: Track progress, export reports.

βœ… Typical Flow

  1. Register / Login
  2. Report or view bugs
  3. Assign bugs to devs
  4. Upload logs/screenshots
  5. Change bug status (Open β†’ In Progress β†’ Resolved)
  6. Get updates via email
  7. Export data in PDF/CSV

πŸ§ͺ Testing Strategy

  • Backend: Unit testing with Jest & Mocha
  • API: Integration testing via Postman
  • Frontend: Manual testing (Unit testing in progress)

πŸ“† Timeline

Milestone Status Deadline
Backend API βœ… Done Mar 15, 2025
Frontend Setup βœ… Done Mar 20, 2025
API Integration βœ… Done Mar 31, 2025
Feature Completion βœ… Done Apr 13, 2025
Deployment & Final QA βœ… Done Apr 16, 2025

🧩 Future Enhancements

  • πŸ€– AI Prioritization & Smart Auto-Assignment
  • πŸ“± Mobile Responsive Design
  • 🧠 Performance Optimization (MongoDB indexing, caching)
  • πŸ”„ Real-time Updates via WebSockets

πŸ‘¨β€πŸ’» Team & Contributions

Member Role Contributions
Naman Chanana Backend & Full-Stack Lead Auth, Email, DB Design, API Testing
Soumya Jain Frontend Developer UI Design, React Pages, Figma Design
Smriti Walia QA & Research Bug Testing, UI Layout, Documentation
Amulya Jain Integration & DevOps Frontend-Backend Link, Fixes, Middleware, Versioning

πŸ“ Repository & Resources


πŸ“œ License

This project is licensed under the MIT License.


πŸ™Œ Acknowledgments

Special thanks to Dr. Shantanu Agnihotri Sir for guiding us throughout the software engineering course.


About

Control + X: Cut your bugs from your software systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.1%
  • Other 0.9%