
A Full-Stack Property Rental Platform built with .NET & Angular
Graduation Project β ITI Alexandria | Full Stack Development Track
Sakenny (Ψ³ΩΩΩΩ), meaning "House me" in Arabic, is a property rental platform inspired by Airbnb.
This repository contains the Frontend, built with Angular, Tailwind CSS, and PrimeNG to provide a responsive, interactive, and role-based user experience.
The frontend enables:
- π€ Customer β Browse and rent properties, manage booking history, make secure payments via Stripe, and view locations on Google Maps.
- π‘ Host β Submit properties for rent (with Google Maps location), manage listings, track income, and access a personalized dashboard.
- π‘οΈ Admin β Review and approve property requests, manage users & data, and access an advanced analytics dashboard.
- π¨ Modern UI powered by Tailwind CSS and PrimeNG
- π Authentication & Authorization with JWT + Google Login
- π³ Secure payment processing via Stripe
- π Location services powered by Google Maps API
- π Role-based dashboards (Customer, Host, Admin)
- π Real-time booking validation (dates locked on checkout & backend validation)
Check out the demo of Sakenny here:
π Watch on Google Drive
The Sakenny Frontend delivers a modern, interactive, and responsive interface for all types of users.
It is built with Angular, Tailwind CSS, and PrimeNG, and integrates seamlessly with the backend API.
- Role-based guards for Customer, Host, and Admin.
- JWT-based login flow.
- Signup & login with Google OAuth.
- Dynamic property listing with advanced filters (price, type, location, amenities).
- Property detail pages with images, amenities, reviews, and location map.
- Hosts can submit new properties using a Google Maps location picker.
- Google Maps API integration for:
- Selecting property location during submission.
- Viewing property locations on detail pages.
- Suggesting nearby properties to customers.
- Stripe-powered checkout pages.
- Payment success & cancel pages for clear transaction flow.
- Integration with backend to store booking & payment history.
- Date-range picker with real-time availability validation.
- Booked dates automatically disabled in the UI.
- Rental history displayed in Customer Dashboard.
- Customer Dashboard β Manage bookings & profile.
- Host Dashboard β Track properties, income, and requests.
- Admin Dashboard β Manage users, approvals, and system analytics.
- Navbar, Footer, Property Card, Date Picker (shared across pages).
- Built with Tailwind CSS + PrimeNG for a clean, responsive UI.
- Fully optimized for desktop, tablet, and mobile.
- Tailwind utilities ensure consistent layouts across screen sizes.
The Sakenny Frontend is built with modern technologies to ensure scalability, responsiveness, and a smooth user experience.
- Angular 20 β Core frontend framework.
- TypeScript β Strongly-typed language for scalable code.
- Tailwind CSS β Utility-first CSS framework for responsive design.
- PrimeNG β Rich UI component library for Angular.
- Stripe Checkout β Secure online payments integration.
- Google Maps API β Location services and map integration.
- Tailwind CSS used for global styles, layouts, and responsiveness.
- PrimeNG used for advanced UI components (e.g., date pickers, dialogs, forms).
The frontend project follows a modular structure for scalability and maintainability.
The app/
folder contains three main directories: components, core, and shared.
Sakenny.Frontend/
βββ src/app/
βββ components/ # Main pages & their child components
β βββ home/ # Homepage with featured properties & filters
β βββ property-listing/ # Property search & filtering
β βββ property-details/ # Property info, images, amenities, reviews
β βββ checkout/ # Booking & Stripe payment
β βββ dashboard/ # Role-based dashboards (Customer, Host, Admin)
β βββ auth/ # Login, Signup, Google OAuth
β βββ add-property/ # Host property submission with Google Maps
β βββ ... # Other feature modules
β
βββ core/ # Core application logic
β βββ guards/ # Route guards (auth, role-based access)
β βββ interceptors/ # HTTP interceptors (JWT token handling)
β βββ services/ # API communication & state management
β βββ interfaces/ # TypeScript interfaces for data models
β
βββ shared/ # Reusable UI components
βββ navbar/ # Navigation bar
βββ footer/ # Footer
βββ property-card/ # Property preview card
βββ date-range-picker/ # Calendar for booking dates
βββ ... # Other shared components
The Sakenny frontend includes a variety of pages designed for different user roles (guest, user, host, admin):
-
π Home Page
- About the website
- Top properties
- Initial search and filter
-
π Property Listing
- Complete list of properties with pagination
- Advanced filters:
- Hierarchical locations (Country β City β District)
- Property type, amenities, price, size, number of people
- Interactive search
-
π‘ Property Details
- Image carousel of the property
- Description, amenities, and reviews
- Location displayed on a map
- Host profile of the property owner
-
π³ Checkout (Authenticated only)
- Date selection
- Stripe payment integration
- Redirects to payment success / cancel pages
-
π Authentication
- Login and signup
- Google login option
-
π€ Profile
- View and edit profile details
- Update password
- For users: shows active and past rentals
- For hosts: shows properties, reservations, and earnings
-
β Add Property (Hosts only)
- Form to add a property with full details
- Map integration for selecting pin location (longitude, latitude, address, etc.)
-
π οΈ Admin Dashboard
- Analytics and insights for the entire platform
- Review and approve host requests
- Review and approve new property submissions
The design of Sakenny follows modern UI/UX practices to ensure a clean, accessible, and user-friendly experience:
-
Simplicity & Clarity
Minimalist design with a focus on usability and easy navigation. -
Responsiveness
Fully responsive layouts built with TailwindCSS, ensuring smooth experience across desktops, tablets, and mobiles. -
Consistency
Unified color theme and component styling to maintain a coherent look and feel. -
Reusability
Modular components (e.g., property cards, filters, carousels) designed for reusability across multiple pages. -
Accessibility
Semantic HTML and ARIA attributes where needed to improve accessibility. -
Performance
Optimized loading with lazy loading for images and efficient API integration. -
Modern UI Libraries
Leveraging PrimeNG selectively for advanced components while keeping Tailwind as the core styling system.
The Sakenny Backend is developed with .NET 8.0, following N-Tier Architecture and Clean Code principles.
It provides all the core functionalities of the platform including authentication & authorization, payment integration with Stripe, image storage via Azure Blob (Azurite), Google Maps integration, and a robust booking system.
π Check it out here: Sakenny Backend Repository
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software, provided that proper attribution is given.
Meet the people behind this project:
Avatar | Name | GitHub |
---|---|---|
Mohab Wafaie | @MohabWafaie | |
Ahmed Waleed | @Ahmedabdeen15 | |
Nancy EL Sherbiny | @NancELSherbiny | |
Marwan Fawzy Shahat Mahmoud | @ArabianHindi | |
Rodina Elfeky | @RodinaElfeky | |
Ahmed Aseel | @Ahmed-Aseel |
Built with passion and dedication by the ITI Alexandria graduates.
We hope you enjoy exploring Sakenny as much as we enjoyed building it!