Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mohammad-nour-alawad/hotelizer
ASP .NET Core MVC, MS SQL Server
https://github.com/mohammad-nour-alawad/hotelizer
admin-dashboard ajax asp-net asp-net-core asp-net-mvc client-project mcv mssql repository-pattern server-side-rendering service-worker unitofwork uow
Last synced: 18 days ago
JSON representation
ASP .NET Core MVC, MS SQL Server
- Host: GitHub
- URL: https://github.com/mohammad-nour-alawad/hotelizer
- Owner: mohammad-nour-alawad
- Created: 2024-02-07T00:37:33.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-03-15T20:43:59.000Z (9 months ago)
- Last Synced: 2024-03-15T21:51:52.060Z (9 months ago)
- Topics: admin-dashboard, ajax, asp-net, asp-net-core, asp-net-mvc, client-project, mcv, mssql, repository-pattern, server-side-rendering, service-worker, unitofwork, uow
- Language: HTML
- Homepage:
- Size: 23.9 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Hotelizer:**
ASP .NET Core MVC project, with SQL Server Database.
Built based on the following key concepts:
- **MVC** and **N-tier** Architectors.
- **Unit of Work** (UOW) and **Repository** design patterns.
- **REST APIs**.
- **Service Pool**
- **Generic CRUD Operations**
- **Entity Framework**.
- **SQL Server** with code first, i.e. migrate the database from the code.
- **Ajax Server** Side Pagination.
- **Asynchronous database operations**, to ensure Integrety.
- **Ceperation of Concepts**.
- **Facade** Design Pattern.# **Architecture**:
To ensure the best practices, I built project using multiple layers, which are:## **Client**
this project offers wide varaity of use cases for **Clients**, which include:
- Filtering available rooms based on (Category, Specification, Price, Available date)
- Booking a room.
- Adding services to a booking (laudary, breakfast, ...)
- Updating the booked servies if NOT consumed yet.
- Room Servies like restaurants, Users can order from the restaurant and the prices will attached to the chosen booking.
- Reviewing history of bookings and orders.
- Exploring similar rooms.
- Exploring most booked rooms.
- Exporing Most requested services.
- Exploring Weather using the integrated weather API.
- Exploring Other hotels registered in the System using google maps API.
- and many many other use cases.
## **Hotelizer**this is the project that conserns with the **Hotel Staff**, which offers the following use cases:
- seeding the database in case it is empty. (publishing rooms, services, products, and all other base tables)
- accepting a booking request.
- exploring charts for revenues/total users and others.
- Marking a service as CONSUMED. (like breakfast, landuary, ...)
- Updating ALL the tables informations (adding photos, updating names, adding new servies, changing prices, and many more others)
- Adding admins.
- It also offers, a server side pagination for tables, using **AJAX**.
## **Buisness Logic**this layer offers the app services using a **Service Pool**, which is built to highly seperated the concets from each others, the moduls are:
- Room service, all logic for services related to rooms only.
- Booking service, all logic for services related to bookings only.
- Restaurant Service, all logic for services related to restaurant only.
- it is uses a domain mapper, to map the resonse comming form the DB layer into the buisness logic models using **DTOs**.
- it is resposible for creating the ViewModels, which hold the needed data that will passed to the controller of the needed ser## **DBConnection**
this layer contains the logic needed to connect to the SQL Server database, it offers:
- appility to migrate our models into database tables with the needed relationships (code first methodolgy).
- offers a totaly GENERIC CRUD operations on our data, using a Base Repository.