Skip to content

Latest commit

Β 

History

201 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Sakenny (Ψ³ΩƒΩ†Ω‘ΩŠ) – Frontend

screencapture-localhost-4200-rent-2025-08-19-20_37_29

A Full-Stack Property Rental Platform built with .NET & Angular
Graduation Project – ITI Alexandria | Full Stack Development Track


πŸ“– Overview

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.

πŸ”‘ Key Highlights

  • 🎨 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)

πŸŽ₯ Demo

Check out the demo of Sakenny here:
πŸ‘‰ Watch on Google Drive


✨ Features

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.

πŸ”‘ Authentication & Authorization

  • Role-based guards for Customer, Host, and Admin.
  • JWT-based login flow.
  • Signup & login with Google OAuth.

🏑 Property Management

  • 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.

πŸ“ Location Services

  • Google Maps API integration for:
    • Selecting property location during submission.
    • Viewing property locations on detail pages.
    • Suggesting nearby properties to customers.

πŸ’³ Payment Integration

  • Stripe-powered checkout pages.
  • Payment success & cancel pages for clear transaction flow.
  • Integration with backend to store booking & payment history.

πŸ“… Booking System

  • Date-range picker with real-time availability validation.
  • Booked dates automatically disabled in the UI.
  • Rental history displayed in Customer Dashboard.

πŸ“Š Dashboards

  • Customer Dashboard – Manage bookings & profile.
  • Host Dashboard – Track properties, income, and requests.
  • Admin Dashboard – Manage users, approvals, and system analytics.

🎨 Reusable Components

  • Navbar, Footer, Property Card, Date Picker (shared across pages).
  • Built with Tailwind CSS + PrimeNG for a clean, responsive UI.

πŸ“± Responsive Design

  • Fully optimized for desktop, tablet, and mobile.
  • Tailwind utilities ensure consistent layouts across screen sizes.

πŸ› οΈ Tech Stack

The Sakenny Frontend is built with modern technologies to ensure scalability, responsiveness, and a smooth user experience.

πŸ“¦ Frontend Technologies

  • 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.

🎨 Styling

  • Tailwind CSS used for global styles, layouts, and responsiveness.
  • PrimeNG used for advanced UI components (e.g., date pickers, dialogs, forms).

πŸ“‚ Folder Structure

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

πŸ“„ Pages

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

🎨 Design Principles

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.


πŸ› οΈ Backend Repository

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


πŸ“œ License

This project is licensed under the MIT License.
You are free to use, modify, and distribute this software, provided that proper attribution is given.

License: MIT


πŸ‘¨β€πŸ’» Team

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

πŸ’– Made with Love

Built with passion and dedication by the ITI Alexandria graduates.
We hope you enjoy exploring Sakenny as much as we enjoyed building it!

Releases

Packages

Contributors

Languages