Course Navigator Pro Artifact

Academic Advising Console Application

Code Review

This walkthrough highlights the C++ logic, data validation layers, and how external testing methods were used to identify vulnerabilities. Runtime analysis and enhancements for BST tree balancing and error handling are also explained.

Course Navigator Pro Code Review

Original Artifact

This artifact began as a course requirement at ABC University. The original application was built in C++ and designed to read a CSV of course data, organize it using a simple Binary Search Tree (BST), and allow users to view courses in sorted order or fetch prerequisites.

While the core concept demonstrated an understanding of BST logic, the app lacked scalability, edge case handling, and modern data persistence. It also assumed perfectly formatted input files, which significantly limited its real-world application and introduced vulnerability to malformed data.

Critically, the original version did not utilize a database—meaning all course data had to be reloaded each session, and no user-specific or dynamic data could be saved or retrieved. For a system like Course Navigator Pro, which is intended to support academic advising workflows, this was a major limitation. Persistent storage through a database is essential to enable course tracking, real-time updates, historical data access, and user synchronization across sessions and devices.

To address this, MongoDB was selected as the backend solution during the enhancement phase. Its NoSQL, document-based structure provided the flexibility needed to manage varying course and prerequisite data while enabling scalable storage, fast retrieval, and smooth integration with a modern Java-based application. This shift laid the foundation for a more robust, full-stack advising tool ready for future cloud deployment.

Course Navigator Pro AVL tree

Original Console App in C++ w/ BST Sorting

Enhancement

The Course Navigator Pro application began as a C++ console program utilizing a basic Binary Search Tree (BST) for storing and retrieving course information. While functional, this approach lacked balance and scalability, leading to inefficiencies during search operations as data volumes grew. To improve performance, the codebase was migrated to Java, enabling better modularization and compatibility with modern development tools and frameworks.

A key enhancement involved replacing the unbalanced BST with a self-balancing AVL Tree. This change significantly improved search, insertion, and deletion operations by maintaining logarithmic time complexity, even as the course dataset expanded. The AVL implementation ensured that the application could handle a larger and more dynamic set of courses without sacrificing performance.

Additionally, MongoDB was integrated as the application's NoSQL backend. Unlike traditional relational databases, MongoDB allows for flexible schema design, making it ideal for storing course records that may vary in structure or expand over time. Its document-based model simplified data retrieval and allowed the application to evolve quickly without complex migrations.

These enhancements not only addressed performance and scalability concerns but also modernized the application's architecture. With Java's object-oriented design, AVL's efficiency, and MongoDB's scalability, Course Navigator Pro is now positioned for full-stack expansion, cloud deployment, and future integration of features such as role-based access control, advisor authentication, and real-time data analytics.

EvenTrack original Figma UI mock Enhanced app mockups EvenTrack original prototype

AVL Tree & MongoDB Integration

Checkpoint Summary

Milestones Enhancement Category Original Issue Changes Made Outcome Demonstrated
Milestone 1 Algorithms & Data Structures | v1.0 Initial implementation in C++ using basic Binary Search Tree logic Converted core logic from C++ to Java and restructured codebase for maintainability Language Migration, Object-Oriented Design, Refactoring
Milestone 2 Algorithms & Data Structures | v1.1 Unbalanced Binary Search Tree causing inefficient search operations Implemented AVL Tree for self-balancing and optimized retrieval of course data Advanced Data Structures, Search Optimization, Algorithm Efficiency
Milestone 3 Databases | v1.2 No backend database integration; data persistence was missing Configured MongoDB and started linking course records to backend schema NoSQL Integration, Backend Architecture, Data Modeling
Milestone 4 Databases | v1.3 Lack of cloud-based storage and user-course synchronization Fully integrated MongoDB with Java codebase and implemented dynamic course syncing Database Synchronization, Full-Stack Integration, Cloud Readiness

Technical Reflection

Throughout the development of Course Navigator Pro, I migrated the original C++ codebase to Java to improve maintainability and apply object-oriented design principles. To enhance performance, I replaced the basic Binary Search Tree with a self-balancing AVL Tree, optimizing search efficiency and data retrieval.

For backend data persistence, I integrated MongoDB and configured it to synchronize course records dynamically. This integration allowed for scalable, cloud-ready data management, supporting seamless updates and real-time syncing.

Security was a key consideration: I implemented secure RESTful API endpoints with strict input validation, following OWASP best practices. Modular asynchronous flows were designed to maximize responsiveness, and Firebase permissions were fine-tuned to ensure balanced functionality and user privacy.

Learning & Outcomes

Future Enhancements

The next phase includes developing a comprehensive web-based interface connected via RESTful APIs. This UI will empower academic advisors to efficiently search courses, review prerequisites, and generate advising reports in real-time.

Additional planned features involve implementing authentication for advisors, enforcing role-based access controls, and deploying the application on cloud platforms like Firebase or AWS to ensure full scalability, availability, and security.

A reporting engine will be added to allow advisors to export reports (PDF/CSV) detailing student progress, prerequisite chains, and curriculum compliance. Integration with tools such as Google Drive or Microsoft 365 will offer centralized access to advising documents and schedules.

For larger institutions, multi-tenancy support will be introduced, enabling the system to serve multiple departments or campuses with isolated datasets and access privileges. This will include customizable branding, department-specific course schemas, and tenant-level analytics.

To enhance automation, the system will also feature:

These upgrades are designed to evolve Course Navigator Pro into a full-service, institution-grade advising system with intelligent insights, real-time responsiveness, and extensibility across a variety of academic use cases.

Mockup UI concept for Course Navigator Mockup UI concept for Course Navigator

Roadmap: Fully Functional Mobile/Web Application