Skip to content

AmyOuY/HotelManager.NETCore

Repository files navigation

Hotel Management System (C# .NET Core)

  • A desktop application originally built with .NET Framework4.7 that allows managing Hotel Rooms, Clients, Check-ins, Checkouts, Check in/out Reports and User Data Access with Authentication and Role Based Authorization.
  • Front-end was implemented with Windows Presentation Foundation (WPF) using Caliburn Micro's MVVM pattern and Dependency Injection container.
  • A middle Web API layer that services the front-end was created using ASP.NET MVC, Web API and Async/Await with Swagger documentation.
  • Back-end data was managed by Microsoft SQL Server and used Dapper as Object Relational Mapper (ORM) for storing and accessing data through Class Library.
  • Upgraded the application to .NET Core3.1 and implemented Dependency Injection in the middle Web API layer using ASP.NET Core's built-in service container and Authentication and Authorization using JSON Web Token (JWT).

Swagger was used to document the Web API Endpoints


Token Authentication


Token Authorization


Only authorized user can access data in the API Endpoints


Successful login allows displaying app menus on top of the shell window


Only User with Admin role is allowed to manage the User Roles


Unauthorized User is banned from manipulating the User Roles


Room View displays all room information and allows Add, Edit and Remove room information from the table and SQL database


Client View displays all client information and allows Add, Edit and Remove client information from the table and SQL database. Selecting a client in the table and clicking the "Switch To Check In" button allows switching to the CheckIn View and automatically filling in available CheckIn information for the selected client.


CheckIn View allows displaying information for an already checked-in client if typing in the client name. For new checkIn, client needs to register in Client view first and then fill in required information to check in. CheckIn View also allows clearing the filled-in fields and removing CheckIn information from the SQL database.


Select one room type from the Room Type drop-down list will display the available rooms of the chosen type in the Room Number drop-down list. When a room number is chosen, the corresponding room capacity and price info will be automatically filled in.


CheckOut View allows display of the checkOut information when typing in the room number that needs to check out. Clicking the "Check Out" button will store the CheckOut information and update the corresponding CheckIn and Room Availability information in the SQL database.


A warning message will show up if typing in wrong room number for CheckOut

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published