Engineering Case Study

Travlr Getaways Full-stack travel platform.

A production-style MEAN application combining an Angular administration interface, Express REST API, MongoDB data layer, secure authentication, and cloud deployment.

Overview

From coursework to a deployed application.

Travlr Getaways began as a full-stack development project during CS-465 at Southern New Hampshire University. The original application introduced the MEAN stack through a customer-facing travel site, Angular administrative interface, REST API, and MongoDB database.

I later expanded the application during my CS-499 capstone and continued developing it as a standalone portfolio project. The enhanced version improves application architecture, data handling, authentication, maintainability, deployment, and the overall user experience.

The Problem

Build one application for two different audiences.

The application needed to support both travelers browsing available trips and administrators responsible for managing the underlying travel data.

That required separating the customer experience from administrative functionality while maintaining a shared backend, consistent data model, and secure access to protected operations.

My Role

Full-stack ownership.

I worked across the application stack, from frontend interfaces and API design to database architecture, authentication, deployment, and ongoing enhancements.

Frontend Development

Built and enhanced customer and administrative interfaces, including the Angular single-page application.

API Development

Designed RESTful endpoints and application logic supporting trip management and client-server communication.

Database Design

Developed MongoDB and Mongoose models supporting application data, validation, relationships, and efficient retrieval.

Cloud & Delivery

Deployed the application using Azure services, MongoDB Atlas, custom domains, and automated GitHub Actions workflows.

Architecture

Clear separation between presentation, logic, and data.

The application uses a layered architecture that keeps client interfaces independent from backend services and database access.

Frontend

Angular SPA

Administrative interface and client-side services.

Application Layer

Node.js + Express

REST API, controllers, authentication, and business logic.

Data Layer

MongoDB Atlas

Persistent application data managed through Mongoose.

Infrastructure

Azure

Cloud hosting, custom domains, HTTPS, and automated delivery.

Engineering Decisions

Designing for maintainability and separation of concerns.

REST API Architecture

Client applications communicate through an Express REST API instead of interacting directly with the database, separating presentation from business and persistence logic.

JWT Authentication

Administrative functionality uses token-based authentication to protect privileged operations and restrict access to management functionality.

Centralized Data Processing

Search, filtering, sorting, and pagination logic was moved to backend services so multiple clients could consume consistently processed results.

Cloud Deployment

The project was moved beyond a local development environment through Azure hosting, MongoDB Atlas, custom domains, and automated deployment workflows.

Beyond the Original Project

Turning an academic artifact into a portfolio project.

The original CS-465 project established the core MEAN architecture. Later enhancements focused on making the application more complete, secure, maintainable, and representative of modern software engineering practices.

  • Expanded authentication and protected administrative functionality.
  • Improved validation and error handling across application layers.
  • Enhanced MongoDB models, relationships, indexes, and data processing.
  • Added more advanced search, filtering, sorting, and pagination.
  • Improved frontend usability and administrative workflows.
  • Deployed application components to Azure and MongoDB Atlas.
  • Implemented automated deployment through GitHub Actions.
  • Configured HTTPS and custom project subdomains.

Challenges & Lessons

What the project reinforced.

Working Across Layers

Changes to the database often required coordinated changes to API contracts, application models, frontend components, validation, and testing.

Authentication

Protecting administrative functionality reinforced the need to consider security at both the client and server layers rather than treating it as a frontend concern.

Deployment

Moving from local development to cloud hosting introduced configuration, environment, DNS, TLS, and deployment concerns that do not appear during local development.

Iterative Engineering

Revisiting an existing application demonstrated how software can be progressively improved rather than completely rewritten whenever requirements evolve.

Technology

Built with the MEAN stack and modern cloud tooling.

Angular TypeScript JavaScript Node.js Express MongoDB MongoDB Atlas Mongoose REST APIs JWT Azure GitHub Actions Git

Explore the Project

See the application and the code.

Explore the deployed application, administrative interface, or source repository to see the project in more detail.