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.
- 👤 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
The app follows the MVC pattern (Model–View–Controller), maintaining clear separation of data, logic, and UI components.
TravelPlannerApp.xcdatamodeld— Core Data model definingUser,Trip, andDestinationentities
HomeTableViewController— Displays featured destinations or overviewTripListViewController— Lists all saved tripsTripDetailViewController— Shows itinerary and trip detailsFavoritesViewController— Displays user-saved destinationsCreateTripViewController— Handles new trip creation formLoginViewController/SignUpViewController— User authentication flowDestinationDetailViewController— Detailed destination info screen
TripCardCell.swift— Custom table cell for trip cardsDestinationTableViewCell.swift— Displays destination dataFavoriteCell.swift— Cell layout for favorite destinations
This app uses Core Data for data persistence.
All user accounts, trips, and destinations are saved locally, ensuring data is retained between sessions.
- User → stores account credentials
- Trip → contains trip name, start date, and relationship to destinations
- Destination → includes name, image, and description
- 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
| Home | Sign Up | Log In |
|---|---|---|
![]() |
![]() |
![]() |
| Destinations | Details | Favorites |
|---|---|---|
![]() |
![]() |
![]() |
| Added to Favorites | Remove Favorite |
|---|---|
![]() |
![]() |
🗓️ Trip Planning (click to expand)
| Planned Trips | Create Trip | Select Destinations |
|---|---|---|
![]() |
![]() |
![]() |
| Trip Summary | Trip Details | Delete Trip |
|---|---|---|
![]() |
![]() |
![]() |
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!














