Resort Booking Application
Resort Booking is a full-stack application that allows users to explore resorts, check real-time availability, view resort details, and manage bookings efficiently. The application provides two levels of access: Admin and Normal User.
The iOS frontend is developed using Swift and SwiftUI, providing a user-friendly interface with features such as Firebase phone authentication, resort search and filtering, resort details, availability calendar, map integration, favorites, ratings, feedback, and multilingual support.
- π Phone Number Authentication
- π₯ Role-Based Access Control
- π Availability Calendar
- πΊοΈ Map Integration and Navigation
- π Multi-Language Support
- β Ratings and Feedback
- π Resort View Count
The application provides secure user authentication using mobile number verification. Firebase SMS Authentication is integrated to send OTPs, allowing users to log in securely without requiring a password. The registered mobile number is used only for authentication and cannot be modified.
The application supports two types of users: Admin and Normal User. Normal users can view resort information and availability, while admins get additional permissions to manage resort data and bookings.
The application provides a calendar-based availability view where users can check booked and available dates for resorts. By selecting a booked date, users can view the booking duration, including start and end timings.
Users can view the exact resort location on the map using the available coordinates. The navigation feature redirects users to the map application, allowing them to get directions from their current location to the resort.
The application supports multiple languages to provide a better user experience for different users. Language can be changed from the profile section, with support for English, Hindi, and Marathi.
Users can share their experience by providing ratings and feedback for resorts. Each user can submit one review per resort and update it whenever required. The ratings and feedback are visible to other users to help them make better decisions.
The application tracks the number of times each resort has been viewed. The view count is displayed to users and helps identify popular resorts.
- Frontend:
Swift
SwiftUI
Firebase Authentication
VIPER Architecture
Async/Await / Networking
MapKit Maps
REST API Integration
- Backend::
Spring Boot
REST APIs
- Database:
MySQL