A scalable and full-stack MERN-based bug tracking application to streamline software issue management, resolution, and reporting for development teams.
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
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create a
.envfile 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_USER=your_email@gmail.com EMAIL_PASSWORD=your_app_password EMAIL_FROM=no-reply@bugtracker.com # Admin configuration ADMIN_INVITE_TOKEN=secret_admin_token_change_this
-
Start the backend server:
npm run dev
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the frontend development server:
npm run dev
- π 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
- Developers can track and resolve bugs assigned to them.
- Testers can report bugs with evidence.
- Managers can monitor bug resolution and generate reports.
| 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 |
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
| 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 | β |
- Admin: Manage users, assign bugs, delete reports.
- Developer: View & resolve assigned bugs.
- Tester: Report bugs, add evidence.
- Manager: Track progress, export reports.
- Register / Login
- Report or view bugs
- Assign bugs to devs
- Upload logs/screenshots
- Change bug status (Open β In Progress β Resolved)
- Get updates via email
- Export data in PDF/CSV
- Backend: Unit testing with Jest & Mocha
- API: Integration testing via Postman
- Frontend: Manual testing (Unit testing in progress)
| 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 |
- π€ AI Prioritization & Smart Auto-Assignment
- π± Mobile Responsive Design
- π§ Performance Optimization (MongoDB indexing, caching)
- π Real-time Updates via WebSockets
| 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 |
- π GitHub: CtrlX_Error
- π¨ Figma Design: View UI
This project is licensed under the MIT License.
Special thanks to Dr. Shantanu Agnihotri Sir for guiding us throughout the software engineering course.