RentHelper is a modern iOS application built with SwiftUI that simulates a real rental platform experience. The app allows users to explore listings, interact with landlords, and navigate properties through a clean and structured user journey.
This project focuses on delivering not just features, but a complete product experience with strong architecture, thoughtful UX decisions, and realistic workflows.
RentHelper is designed as a rental discovery platform where users can:
Browse rental listings from a cloud database View detailed property information Explore listings on a map Save favorite properties locally Contact landlords Schedule property visits Simulate reserving a unit with a deposit
The goal is to replicate how a real-world rental app behaves while maintaining clean design and scalable architecture.
The app is built around a realistic user journey:
Browse β View β Contact β Schedule β Reserve
Each feature is placed intentionally to reflect how users actually interact with rental platforms.
The project follows the MVVM architecture pattern:
Views β ViewModels β Services β Data Sources
Views handle UI ViewModels manage logic and state Services handle Firebase and integrations Data sources include Firestore and CoreData
This ensures clean separation of concerns and maintainable code.
- SwiftUI for UI
- Firebase Authentication for login system
- Firestore for listings data
- Firebase Storage for images
- CoreData for local favorites persistence
- MapKit for map-based exploration
- Stripe (publishable key only) for payment UI simulation
π Authentication Secure login and signup with Firebase
π Listings Dynamic listing feed with images, price, and location
π Listing Details Structured page with clear actions and clean layout
β€οΈ Favorites Saved locally with CoreData and persisted across sessions
πΊ Map Exploration Listings displayed as pins with user location support
π© Contact Landlord Form-based communication flow
π Book Visit Schedule viewing with date and time
π³ Reserve Flow Stripe-based UI to simulate deposit payment
The project was built in progressive iterations to simulate real product development.
Project setup MVVM structure Firebase integration Navigation system
Authentication system Listings screen Listing details Firestore and storage integration
Favorites with CoreData Real-time updates MapKit integration Search and filtering
Contact landlord flow Visit booking Payment simulation UI and UX refinement
Screens are available in the Documentation/ folder.
| Listings | Details | Map View | Clicking on one listing on the Map |
![]() |
![]() |
![]() |
![]() |
| Contact & Visit | Deposit |
![]() |
![]() |
| Favorites | Profile |
![]() |
![]() |
| Login | Sign Up |
![]() |
![]() |
| Change Password |
![]() |
Clone the repository:
git clone https://github.com/negarprh/Rent-Helper.git
cd Rent-HelperSet up Firebase:
Create a Firebase project
Enable Authentication
Enable Firestore
Enable Storage
Download and add GoogleService-Info.plist
Open the project in Xcode and run on a simulator.
Stripe secret keys are not used Payment flow is simulated Sensitive configuration is excluded Firebase rules control access
- Negar Pirasteh
- Betty Dang
- Ngoc Yen Nhi Pham
RentHelper demonstrates how to build a complete mobile product from scratch using modern iOS technologies. The project highlights strong architectural decisions, realistic feature design, and a clear understanding of user experience.










