Stayzy is a modern iOS application that helps users find and book hotels with ease. Built with SwiftUI and following MVVM architecture, it offers a seamless and intuitive user experience for hotel bookings.
-
User Authentication
- Sign In with Email/Password
- Sign Up with Email/Password
- Social Media Login (Google, Facebook, Apple)
- Secure authentication flow
- Password recovery
- Session management
-
Hotel Search & Booking
- Advanced hotel search with filters
- Detailed hotel information
- Real-time availability checking
- Secure booking process
- Price comparison
- Location-based search
- Map integration
- Hotel reviews and ratings
-
User Profile Management
- Personal information management
- Booking history
- Saved preferences
- Wishlist functionality
- Profile customization
- Notification settings
- Payment methods management
-
Trip Management
- View upcoming trips
- Trip details and itinerary
- Booking modifications
- Trip sharing
- Trip reminders
- Digital boarding pass
- Trip cancellation
- Framework: SwiftUI
- Language: Swift 5.5+
- Architecture: MVVM (Model-View-ViewModel)
- iOS Target: iOS 15.0+
- Authentication: Firebase Auth
- Email/Password authentication
- Social media sign-in (Google, Facebook, Apple)
- Secure session management
- Database:
- CoreData for local storage
- Firebase Firestore for cloud data
- File Storage: Firebase Storage
- Analytics: Firebase Analytics
- UI Framework: SwiftUI
- Custom Components:
- Custom search bar
- Rating components
- Hotel cards
- Booking forms
- Design System:
- Custom color scheme
- Typography system
- Component library
- API Layer: Custom implementation
- RESTful API integration
- JSON parsing
- Error handling
- Request/Response caching
- Maps Integration: Google Maps SDK
- Image Loading: Async image loading with caching
- Version Control: Git
- Dependency Management: Swift Package Manager
- Testing:
- XCTest for unit testing
- SwiftUI Preview for UI testing
- UI tests for critical flows
- Code Quality:
- SwiftLint for code style
- SwiftFormat for formatting
- Code coverage tracking
- Caching:
- CoreData for local data
- Image caching
- API response caching
- Memory Management: ARC
- Background Processing: Background tasks and fetch
- Authentication: Firebase Auth
- Data Encryption:
- Secure storage for sensitive data
- HTTPS for network calls
- Input Validation: Custom validation rules
|
App introduction and login options |
Email/Password login with social options |
|
New user registration with validation |
Edit personal details |
|
Browse hotels with filters and search |
Comprehensive hotel information |
|
Detailed amenities and facilities |
|
Interactive hotel location map |
Expanded map with all nearby hotels |
|
User profile and settings |
View and manage bookings |
|
Saved hotels and favorites |
Booking notifications and support |
- Clone the repository
git clone https://github.com/yourusername/Stayzy.git- Open the project in Xcode
cd Stayzy
open Stayzy.xcodeproj- Install dependencies
# Using Swift Package Manager
# Dependencies are automatically managed by Xcode-
Set up Firebase
- Add your
GoogleService-Info.plistto the project - Configure Firebase in your project settings
- Enable required Firebase services (Auth, Firestore, etc.)
- Add your
-
Configure CoreData
- Ensure
LocalStorage.xcdatamodeldis properly set up - Run initial migration if needed
- Ensure
-
Build and run the project
- iOS 15.0+
- Xcode 13.0+
- Swift 5.5+
- Firebase account
- Google Maps API key (for map features)
- CoreData setup
Stayzy/
├── App/
│ └── App configuration and setup
├── Views/
│ ├── Authentication/
│ │ ├── SignInView
│ │ ├── SignUpView
│ │ └── FirstScreenView
│ ├── Profile/
│ │ ├── ProfileView
│ │ └── ProfileInfoView
│ ├── Trips/
│ │ └── TripsView
│ └── Components/
│ ├── SearchBar
│ └── WishlistHeartButton
├── ViewModel/
│ └── Business logic and state management
├── Models/
│ └── Data models and entities
├── Network/
│ └── API communication layer
├── CoreData/
│ └── Local database configuration
├── Repository/
│ └── Data access layer
├── Utils/
│ └── Helper functions and extensions
└── Resources/
└── Assets and configuration files
The project includes comprehensive unit tests and UI tests:
# Run unit tests
xcodebuild test -scheme Stayzy -destination 'platform=iOS Simulator,name=iPhone 14'
# Run UI tests
xcodebuild test -scheme Stayzy -destination 'platform=iOS Simulator,name=iPhone 14' -only-testing:StayzyUITests- Authentication flows
- Hotel search functionality
- Booking process
- User profile management
- Trip management
- UI components
- Network layer
- CoreData operations
- Repository layer
- ViewModel logic












