TRAVLR Artifact Narrative
Overview. TRAVLR is a full-stack travel booking platform built with the MEAN stack (MongoDB, Express.js, Angular, Node.js). Users browse and reserve trips; admins manage listings. For CS-499, I enhanced the system across three categories: software design & engineering, algorithms & data structures, and databases, while maintaining a security-first approach.
Why TRAVLR
This project is a realistic, end-to-end app that demonstrates full-stack integration, modular architecture, and secure data handling. It also provided clear points to measure growth versus the original version.
Enhancements
Software Design & Engineering
- Added an encryption & decryption utility (AES for data handling) and bcrypt hashing for credentials.
- Introduced a modular account-settings feature with routes for registration, login, and settings updates.
- Refactored API logic for readability, reusability, and maintainability; improved comments and structure.
Algorithms & Data Structures
- Hardened the authentication algorithm (salted hashing, validation flow, early failure paths).
- Reduced redundant logic; streamlined request handling and input checks.
- Added defensive programming for input validation and consistent data types before DB operations.
Databases
- Extended the MongoDB schema for user accounts & settings.
- Implemented CRUD for settings with validation and secure integration.
- Set sensible indexes and constraints for efficiency and integrity.
Reflection
Integrating encryption and secure authentication reinforced secure-coding practices such as hashing instead of reversible storage, strong validation, and least-privilege access. Schema updates tied back to database design principles and clarity between models. Refactoring improved testability and made future features easier. Debugging async issues around hashing and schema changes drove a disciplined, iterative test approach.
Course Outcomes Met
- Collaboration & Communication: structured code review, clear documentation of endpoints and decisions.
- Computing Solutions: secure credential management and extensible settings solved concrete product problems.
- Innovative Techniques: modern crypto practices and schema evolution aligned to industry needs.
- Security Mindset: encryption, hashing, validation, and mitigation of common risks.
Source Links
Original code: view repository/branch
Enhanced code: view repository/branch
Use the links above to navigate to the final project, and the early iterations of it.