EZStay is a powerful property booking and management platform built with ASP.NET. Its intuitive design includes a user-friendly web interface and a robust RESTful API, making integration with external systems seamless.
EZStay streamlines the process of listing, managing, and booking rental properties. It offers:
- Role-based access control
- Booking workflows
- Property management
- User registration and comprehensive API endpoints
The project adheres to Clean Architecture principles, ensuring scalable and maintainable code. It is structured into:
- EZStay.API
- An ASP.NET Core backend implementing RESTful endpoints.
- EZStay.UI
- ASP.NET MVC frontend for user interaction.
- Domain Models
- Core entities like
User,Property, andBooking.
- Core entities like
- Services
- Encapsulates business logic.
- Repositories
- Abstracts data access details.
- DTOs (Data Transfer Objects)
- Manages data exchange between API and clients.
- Backend: ASP.NET Core
- Frontend: ASP.NET MVC powered by Razor Views and jQuery
- Database: SQL Server with Entity Framework Core
- API Documentation: Swagger / OpenAPI
- Authentication: Role-based JWT (JSON Web Token)
- User registration and authentication.
- Role-based access control (e.g., Admin, Manager, Owner, etc.).
- User profile updates.
- Listing properties with image uploads.
- Advanced filtering and search.
- Admin approvals for property listings.
- Create, update, cancel property bookings.
- Track booking statuses.
- View booking history.
- Manage system parameters (users, bookings, properties).
- Configure platform settings.
Base URL: https://localhost:7301/api/v{version}/
POST /Auth/register- Register a new userPOST /Auth/login- Authenticate and get a JWT
GET /User- List all usersGET /User/{id}- Fetch user details by IDPUT /User/{id}- Update user detailsDELETE /User/{id}- Delete a user
GET /Property- List all propertiesPOST /Property- Add new propertyPUT /Property/{id}- Update propertyDELETE /Property/{id}- Delete property
POST /Booking- Create a bookingGET /Booking- View all bookingsPUT /Booking/{id}- Update bookingDELETE /Booking/{id}- Cancel booking
- Create a feature branch from
master. - Write and test new changes.
- Commit with descriptive messages.
- Submit a Pull Request for code review.
- Merge changes with approval.
The app supports five main roles:
| Role | Permissions |
|---|---|
| Admin | Full access to manage all platform features. |
| Manager | Oversee properties and bookings. |
| AccountManager | Control user account settings. |
| ContentManager | Moderate property content and descriptions. |
| Owner | Manage their own properties and bookings. |
| User | Browse properties and make bookings. |
- Install
.NET 6 SDKor later. - Install
SQL Server(LocalDB or equivalent). - Recommended: Visual Studio 2022 or Visual Studio Code.
- Clone the repository:
git clone https://github.com/Experts-TurnKey-Solutions/EZStay.git
cd EZStay
Setup the database:
Open the Package Manager Console in Visual Studio.
Run:
bash
Copy
Update-Database
Start the services:
Run EZStay.API on https://localhost:7301.
Run EZStay.UI on https://localhost:5001.
Access the application:
Web UI: https://localhost:5001
Swagger API Docs: https://localhost:7301/index.html
📁 Folder Structure
plaintext
Copy
EZStay/
├── EZStay.API/
│ ├── Controllers/ # REST API endpoints
│ └── Program.cs
├── EZStay.UI/
│ ├── Views/ # Razor Views (Frontend)
│ └── wwwroot/ # Static files
├── Models/ # Domain Models (Business Entities)
├── DTOs/ # Data Transfer Objects
├── Services/ # Business Logic Layer
├── Repositories/ # Data Repositories
├── Middleware/ # Exception Handling Middleware
└── Utils/ # Utilities (Security Helpers, Role Mappings)
📜 License
All rights reserved © 2025 - EZStay.UI
🤝 Contributors
@yazansedih – Project Lead
Copy
---
### To Convert to a PDF:
1. **Use Markdown to PDF tools:**
- Copy the Markdown content into a Markdown editor like [VSCode](https://code.visualstudio.com/).
- Use extensions like `Markdown PDF` to export a PDF.
2. **Online Markdown Converters:**
- Paste the content into [Dillinger](https://dillinger.io/) or an online Markdown editor.
- Export to PDF directly.
