COLLABORTRAK

B.S., Software Engineering Capstone.

An issue tracking system inspired by tools like Jira, CollaborTrak was built from scratch to demonstrate my full-stack development skills. It reflects my growth as a developer and serves as a foundation for continued learning beyond graduation.

PROJECT OVERVIEW

CollaborTrak is a full-stack issue tracking and project management system built to support real-world team workflows. It features role-based dashboards, custom ticket workflows, and dynamic search and reporting tools tailored for software teams. Users log in as Admin, Manager, Developer, QA Agent, or Website Specialist - each with unique permissions and a personalized UI.

The app is built with React / Vite on the frontend and Java Spring Boot on the backend, with a MySQL database and secure cloud deployment. It’s responsive, fast, and structured for long-term scalability.

 

 

sim-mock2

CAPSTONE CHALLENGE

This project was developed for my Software Engineering degree, with the goal of creating a production-grade full stack application that fulfilled all academic and professional criteria. Rather than reusing a class assignment, I chose to evolve an early MERN-based side project (SIMTrak) into a more advanced and polished version using technologies I had grown more comfortable with over time.

CollaborTrak was designed to meet strict requirements, including object-oriented programming concepts (inheritance, encapsulation, polymorphism), validation, report generation, user authentication, and maintainable code structure. Every feature, from secure logins to ticket linking and custom workflows, was built to showcase technical growth and real-world readiness.

AN AMBITIOUS PLAN

One of the capstone requirements encouraged reusing a previous class or side project. I chose to evolve the frontend from SIMTrak - my first attempt at a Jira clone built with the MERN stack.

With CollaborTrak, my goal was to demonstrate how far I’ve come as a full-stack developer. I reimagined the project using a modern tech stack (Spring Boot, Vite, and MySQL) to create a more scalable and secure application that reflects real-world workflows and the lessons I’ve learned while in university.

The original SIMTrak client was built with React and Create React App, the backed with a  Node.JS / Express API and a MySQL database hosted on ClearDB via Heroku. For CollaborTrak, I rebuilt the frontend using React / Vite, and replaced the non functioning backend with Java Spring Boot, Spring Security, and MySQL, a shift that reflects real architectural progress and deeper technical confidence. It also lays a strong foundation for future feature growth beyond graduation.

Screen Shot 2025-04-12 at 2.56.50 PM

PLANNING AND ARCHITECTURE

Before diving into the development, I focused on establishing a solid structural foundation for the application. The capstone requirements called for formal planning artifacts, including UML diagrams, entity-relationship diagrams (ERDs), and wireframes - but I also wanted to ensure the architecture reflected real-world development practices.

 

UML Diagram

ERD Diagram

DESIGN DECISIONS

Because this was an MVP (minimum viable product) with a firm deadline, I made several intentional design trade-offs to reduce complexity and stay focused on core functionality. Rather than over-engineering with patterns like deep inheritance trees or fully bi-directional relationships, I prioritized maintainability, simplicity, and ease of testing.
By treating each ticket type - Epic, Story, Task, and Bug, as a separate entity linked to a parent Ticket, I kept the architecture flexible without introducing unnecessary abstraction. The decision to use Spring Boot with MySQL and a flat object model proved especially effective for building CRUD functionality quickly and reliably.
Each design choice was grounded in real-world goals: ship a working, scalable application that meets user needs, avoids technical debt, and can be extended confidently after graduation.

OOP PRINCIPALS

Object-oriented programming shaped the backend structure. I used:

  • Encapsulation through DTOs to shape API responses and protect internal models
  • Inheritance to model ticket types from a shared base Ticket entity
  • Polymorphism via service interfaces for flexible, interchangeable business logic
  • Composition over inheritance where appropriate to reduce coupling between components

 

BACKEND HIGHLIGHTS

  • Leveraged Spring Boot and JPA for clean, annotation-based entity mapping
  • Created isolated service layers to support unit testing and business logic reuse
  • Employed custom validation and exception handling for robustness
  • Avoided unnecessary complexity to ensure maintainability as the app grows

OOP PRINCIPALS

Object-oriented programming shaped the backend structure. I used:

  • Encapsulation through DTOs to shape API responses and protect internal models
  • Inheritance to model ticket types from a shared base Ticket entity
  • Polymorphism via service interfaces for flexible, interchangeable business logic
  • Composition over inheritance where appropriate to reduce coupling between components

 

BACKEND HIGHLIGHTS

  • Leveraged Spring Boot and JPA for clean, annotation-based entity mapping
  • Created isolated service layers to support unit testing and business logic reuse
  • Employed custom validation and exception handling for robustness
  • Avoided unnecessary complexity to ensure maintainability as the app grows

DESIGN APP'S DASHBOARD

 

The benefit of being able to improve on the repurposed SIMTRAK componentes enabled me to update the color palette, which  was chosen to create a entirely new brand identity which would align with the sites goals.

 

 

Screen Shot 2025-03-09 at 7.59.04 PM

UI SHOWCASE

Take a visual tour of the CollaborTrak interface, designed to balance functionality with clarity. Each screen was built to reflect real-world team workflows, providing intuitive layouts for every user role. The use of Chart JS was added to showcase the use of beneficial JS libraries. Semantic UI was chose for its modularity and ease of use. I wanted to include more features for the MVP but had to practice restraint to meet the deadline.

In conclusion

The project is challenging and ongoing from a passion project standpoint. I continue to develop new features as this forces me to rapidly learn and expand my skill set.

Thanks for looking.