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 protected] EMAIL_PASSWORD=your_app_password [email protected] # 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.