← Back to full index# CtrlX Error - Collaborative Bug Tracker
A full-stack (MERN) defect-tracking platform in which administrators, testers and developers collaborate on the bug lifecycle through role-based workflows, with an integrated AI assistant.
- Role: Team Lead · Backend & AI Integration Engineer (team project)
- Date: Feb 2025 – May 2025
- Categories: project
- Tech: React, Node.js, Express.js, MongoDB, Tailwind CSS, OpenRouter API, JWT, Multer, ExcelJS, Recharts
- GitHub: https://github.com/AmulyaJain2004/CtrlX_Error
- Live: https://ctrl-x-error.vercel.app/
## Overview
Software teams need a shared, auditable record of defects and who is responsible for them. CtrlX Error is a web application that lets administrators, testers and developers report, assign, update and monitor bugs through workflows tailored to each role.
## Features
- **Role-based access** for admin, tester and developer users, secured with JWT authentication and bcrypt password hashing.
- **Bug lifecycle management** with priority and severity levels, file attachments and checklist tracking.
- **Team chat** across private, team and public channels, plus AI-assistant chats that answer technical questions through the OpenRouter API.
- **Analytics and reporting** through dashboard charts and Excel exports.
## System Design
```mermaid
flowchart TD
UI["React 19 + Vite SPA<br/>admin · tester · developer dashboards"] -->|"Axios + JWT"| API["Express REST API"]
API --> Auth["protect middleware<br/>JWT verify + role guards"]
Auth --> Bugs["/api/bugs<br/>lifecycle · status · checklist"]
Auth --> Users["/api/users"]
Auth --> Chats["/api/chats<br/>channels · messages · attachments"]
Auth --> Reports["/api/reports<br/>Excel export (ExcelJS)"]
Bugs --> DB[("MongoDB via Mongoose<br/>User · Bug · Chat · Message")]
Users --> DB
Chats --> DB
Chats -->|"AI-assistant chats"| AI["aiService<br/>last 10 messages + system prompt"]
AI --> OR["OpenRouter API"]
Chats --> Files[("Multer uploads")]
```
- **Frontend:** a React 19 single-page app built with Vite and Tailwind CSS, with a separate dashboard and route set for each role, protected by a `PrivateRoute` wrapper. Recharts draws the dashboard charts. It is deployed on Vercel.
- **Backend:** a Node.js and Express REST API in a routes, controllers, middlewares and models layout, deployed on Render. Every protected route passes through JWT verification and then a role guard, so only testers can report bugs, only developers can change a bug's status or checklist, and only admins can delete bugs or export reports.
- **Data:** MongoDB through Mongoose, with four models: users, bugs, chats and messages.
- **AI assistant:** a chat can have an assistant enabled with its own system prompt and model. When someone posts in it, the service sends the chat's last ten messages to OpenRouter and stores the reply as a message in the same chat.
## My Contribution
This was a four-member team project developed with an agile, incremental approach, and I was the team lead. I worked mainly on the backend and the AI integrations, and was responsible for integration, deployment and version control.
---
Back to the full index: /agent