Skip to content

Ebla-a/property-management

Repository files navigation

🏠 Property Management System

A comprehensive and integrated platform for browsing, booking, and managing properties, with robust features for both tenants and property administrators.

📸 Screenshots

websit AboutUs Admin Dashboard Property Listing Amenities Booking Management Booking Report Management Property Report Management

📚 Table of Contents

🚀 Project Overview

The Property Management System is a full-stack Laravel application designed to:

Allow user registration and authentication
🏠 Enable property browsing with detailed information
📅 Let users book properties and track booking status
📊 Provide admin dashboard for property and user management
🔐 Enforce role-based access control for admins, employees, and clients

⚙️ Requirements

Component Version
PHP ≥ 8.2
Composer Latest
Laravel 12.x
Database MySQL
Node.js Latest (v18+)

🛠 Installation & Setup

1. Clone the Repository

git clone https://github.com/Ebla-a/property-management.git
cd property-management

2. Install Dependencies

composer install      # PHP dependencies
npm install           # JS dependencies

3. Configure Environment

cp .env.example .env
php artisan key:generate

4. Set Up the Database

php artisan migrate --seed

5. Run the Application

php artisan serve     # Start Laravel dev server
npm run dev           # Compile frontend assets with Vite

👥 System Roles

Role Permissions Dashboard Route
Admin Full system access /admin
Employee Manage bookings & properties /employee
Client View properties, make bookings /dashboard

🗄 Database Structure

users

id, name, email, password, role, created_at, updated_at

properties

id, title, description, price, location, images, status, created_at

bookings

id, user_id, property_id, booking_date, status, notes, created_at

reviews

id, user_id, property_id, booking_id, rating, comment, created_at

🔗 Interfaces & Routes

Page Route Description
Admin Dashboard /admin Full system management
Employee Panel /employee Manage properties and bookings
Property Browsing /properties Public property interface
Login Page /login Login for all roles

📚 API Documentation

🔐 Authentication

Method Endpoint Description
POST /api/register Register a new user
POST /api/login User login
POST /api/logout Logout (with token)

🏠 Properties

Method Endpoint Description
GET /api/properties List all properties (paginated)
GET /api/properties/{id} Fetch property details
POST /api/properties Create new property (admin only)
PUT /api/properties/{id} Update property (admin only)
DELETE /api/properties/{id} Delete property (admin only)

📅 Bookings

Method Endpoint Description
GET /api/bookings List bookings (role-based filtering)
POST /api/bookings Create new booking (client)
GET /api/bookings/{id} Get booking details
PUT /api/bookings/{id}/status Update status (employee/admin)
DELETE /api/bookings/{id} Cancel booking (employee/client/admin)

⭐ Reviews

Method Endpoint Description
GET /api/properties/{id}/reviews Get all reviews for a property
POST /api/reviews Submit a review (client)

🧾 Sample Responses

Property Response:

{
    "data": {
        "id": 3,
        "title": "Hintz Rue Apartment",
        "type": null,
        "city": "Malloryside",
        "neighborhood": null,
        "address": "59578 Nakia Path Suite 684\nLake Destin, IL 55277",
        "rooms": 1,
        "area": null,
        "price": "521.00",
        "status": "hidden",
        "is_furnished": false,
        "description": null,
        "main_image": null,
        "amenities": [],
        "created_at": "2026-01-11 20:29:21"
    }
}

Booking Response:

   "data": [
        {
            "id": 46,
            "status": "pending",
            "scheduled_at": "2026-02-14 15:30",
            "notes": null,
            "property": {
                "id": 2,
                "title": "Katharina Glens Apartment",
                "city": "South Maurine"
            },
            "customer": null,
            "employee": null
        },
]

🔑 Sample Credentials

👨‍💼 Admin

Email: admin@example.com
Password: password123

👨‍💻 Employee

Email: employee@property.com
Password: 12345678

📞 Support & Contributions

If you find bugs, need help, or would like to contribute:

  1. Open an issue on the GitHub repo
  2. Fork and submit a pull request
  3. Contact the team for feedback or collaboration

🏆 Acknowledgments

🎉 Special Thanks

Focal X Agency
For their commitment to student growth and learning opportunities.

Mentors

Mr. Hashim Othman

  • Technical guidance
  • Concept clarification
  • Inspirational mentorship

Mr. Ayham Ibrahim

  • Support throughout development

Supervisors

Ms Nourhan almohammed & Ms Muna alrays Technical support and daily follow-up

Focal X Team
For building and supporting this educational journey

ceo and founder Alaa Darwish

Development Team

Role Name
Lead Developer Ebla zyab ali
Assistant Developer Hasan Dayoub
full stack Wajd Heshme
Backend Developer Amin Ali
Database Specialist Enas Alhmoy
Backend Developer Abdullah Shuraitah

Thank you to all educators, mentors, and contributors who made this project a reality.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages