BookingApp is a feature-rich desktop and console-based application built with C# and WPF, designed to streamline the management of accommodations, tours, reservations, and user interactions.
The application is structured using the MVVM (Model-View-ViewModel) design pattern for WPF and clean architectural principles for the console version. It supports multiple user roles β Owners, Guests, Guides, and Tourists β each with tailored functionalities.
π’ This README emphasizes the Guest role, which was actively developed and tested by me.
Role | Key Functionalities |
---|---|
Guest | Book accommodations, manage reservations, rate hosts, use forums |
Owner | Manage accommodations, view stats, respond to reviews, handle booking changes |
Guide | Create/cancel tours, track tour activity, review statistics |
Tourist | Book tours, rate experiences, request complex tours, win vouchers |
Each role includes standard and "Super-user" privileges, unlocking advanced features like forum interaction, renovations scheduling, tour management, and more.
As a Guest, you interact primarily with accommodations, bookings, and community features. This role is designed to provide a smooth and intuitive reservation experience.
Capability | Description |
---|---|
π Search Accommodations | Browse listings filtered by location, availability, and preferences |
π¨ Book Accommodations | Instantly reserve available stays |
π Rate Accommodations & Hosts | Leave feedback and ratings post-visit |
π Propose Renovations | Suggest improvements for better guest experience |
π View Guest Reviews | Read shared experiences from other users |
π Reschedule Reservations | Send requests to change reservation dates |
β Cancel Reservations | Cancel planned stays directly from the console |
π Anywhere / Anytime Booking | System-recommended stays based on flexible criteria |
π Super-Guest Features | Access and contribute to the forum, leave and reply to comments |
π Super-Guest status unlocks community engagement via the built-in forum system.
Here is a short visual demonstration of the Guest role in action:
Use the following credentials to log in with different roles:
Role | Username | Password |
---|---|---|
Guest | gost |
gost |
Owner | vlasnik |
vlasnik |
Guide | vodic |
vodic |
Tourist | turista |
turista |
π These are default development credentials.
Category | Technology |
---|---|
Language | C# |
UI Framework | WPF (Windows Presentation Foundation) |
Architecture | MVVM (Model-View-ViewModel) |
Console I/O | .NET Console Application |
Data Storage | CSV Files |
Serialization | Custom CSV Serializers |
BookingApp/
βββ Model/
β βββ Accommodation.cs
β βββ Reservation.cs
β βββ Tour.cs
β βββ ...
βββ ViewModel/
β βββ Owner/
β βββ Tourist/
β βββ ...
βββ View/
β βββ CommentForm.xaml
β βββ CommentsOverview.xaml
β βββ ...
βββ Repository/
β βββ AccommodationRepository.cs
β βββ ...
βββ Service/
β βββ AccommodationService.cs
β βββ ...
βββ Dto/
β βββ AccommodationDto.cs
β βββ ...
βββ Resources/
β βββ Data/
β β βββ accommodations.csv
β β βββ ...
β βββ Images/
βββ Serializer/
β βββ Serializer.cs
π§ The structure reflects a clear separation of concerns, adhering to MVVM and SOLID principles.
- OS: Windows
- .NET Framework 4.7.2 or later
- IDE: Visual Studio 2019+
-
Clone the repository
git clone https://github.com/MarkoKolarski/Booking_app.git
-
Open the solution in Visual Studio.
-
Restore NuGet packages (if required).
-
Build the project
Ctrl + Shift + B
-
Run the app
- Use Visual Studio's
Start Debugging
(F5
) - Or run the output
.exe
from/bin/Debug
- Use Visual Studio's
-
Login using:
Username: gost Password: gost
-
Access the main Guest Menu, where you can:
- Search and book accommodations
- View or cancel current reservations
- Submit reviews or reschedule
- Participate in forum discussions (if Super-Guest)
-
Navigate via numbered options in the console or UI-based forms in the WPF version.