Skip to content

An iOS UIKit app that lets users plan and manage trips, featuring Core Data user authentication, trip creation, and destination management.

Notifications You must be signed in to change notification settings

asperez26/TravelPlannerApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

✈️ Travel Planner App (UIKit)

An iOS UIKit application that allows users to create, manage, and organize travel plans.
Built with Swift and Core Data, this app demonstrates user authentication, trip creation, local data persistence, and dynamic UI using the MVC architecture.
Developed as part of an academic project at Seneca Polytechnic.


🚀 Features

  • 👤 User Authentication — Sign up and log in using locally stored Core Data accounts
  • 🗺️ Trip Creation — Add new trips with name, date, and selected destinations
  • 🏝️ Destination Details — View preloaded destinations with descriptions and images
  • Favorites — Save destinations for quick access
  • 🗂️ Trip List — Browse all created trips with custom trip cards
  • 🧳 Trip Details — View detailed itinerary and destinations per trip
  • 💾 Data Persistence — All users, trips, and favorites are stored locally via Core Data
  • 🎨 Custom UI Components — Includes reusable table view cells and styled cards for a modern travel theme

🧩 Architecture Overview

The app follows the MVC pattern (Model–View–Controller), maintaining clear separation of data, logic, and UI components.

Models

  • TravelPlannerApp.xcdatamodeld — Core Data model defining User, Trip, and Destination entities

ViewControllers

  • HomeTableViewController — Displays featured destinations or overview
  • TripListViewController — Lists all saved trips
  • TripDetailViewController — Shows itinerary and trip details
  • FavoritesViewController — Displays user-saved destinations
  • CreateTripViewController — Handles new trip creation form
  • LoginViewController / SignUpViewController — User authentication flow
  • DestinationDetailViewController — Detailed destination info screen

Views

  • TripCardCell.swift — Custom table cell for trip cards
  • DestinationTableViewCell.swift — Displays destination data
  • FavoriteCell.swift — Cell layout for favorite destinations

💾 Core Data Overview

This app uses Core Data for data persistence.
All user accounts, trips, and destinations are saved locally, ensuring data is retained between sessions.

Entities

  • User → stores account credentials
  • Trip → contains trip name, start date, and relationship to destinations
  • Destination → includes name, image, and description

🧠 Key Technical Highlights

  • Swift 5 & UIKit
  • Core Data for persistence
  • MVC architecture
  • Dynamic TableView and custom cells
  • Storyboard-based navigation
  • Auto Layout for responsive design
  • User authentication system using Core Data

📸 App Preview

🔐 Authentication

Home Sign Up Log In
Home SignUp LogIn

🧭 Explore Destinations

Destinations Details Favorites
Destinations Details Favorites
Added to Favorites Remove Favorite
Added Remove

🗓️ Trip Planning (click to expand)
Planned Trips Create Trip Select Destinations
PlannedTrips CreateTrip SelectDestinations
Trip Summary Trip Details Delete Trip
TripSummary TripDetails DeleteTrip
⚙️ Account Actions (click to expand)
Log Out Confirmation
Logout

👩‍💻 Author

Andrea Selina Perez
📍 Seneca Polytechnic – Computer Programming (iOS & Data Structures focus)
📫 andreaselinaperez26@gmail.com
🌐 GitHub Profile


If you liked this project, consider giving it a star on GitHub!

About

An iOS UIKit app that lets users plan and manage trips, featuring Core Data user authentication, trip creation, and destination management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages