Skip to content

Booking system with support for guests, owners, guides, and tourists β€” built as a desktop console application in C# using WPF and the MVVM architecture.

Notifications You must be signed in to change notification settings

MarkoKolarski/Booking_app

Repository files navigation

πŸ“˜ BookingApp

C# .NET WPF MVVM CSV ConsoleApp

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.

✨ Features

πŸ”„ Multi-Role Functionality

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.


🎯 Guest Experience (My Role)

As a Guest, you interact primarily with accommodations, bookings, and community features. This role is designed to provide a smooth and intuitive reservation experience.

🧳 Guest Functionalities

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.

πŸ“½οΈ Guest Role Demo (GIF)

Here is a short visual demonstration of the Guest role in action:

BookingApp Guest Tutorial


πŸ” Login Credentials

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.


πŸ› οΈ Technologies Used

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

πŸ“ Project Structure

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.


πŸš€ Installation

βœ… Prerequisites

  • OS: Windows
  • .NET Framework 4.7.2 or later
  • IDE: Visual Studio 2019+

πŸ“₯ Installation Steps

  1. Clone the repository

    git clone https://github.com/MarkoKolarski/Booking_app.git
  2. Open the solution in Visual Studio.

  3. Restore NuGet packages (if required).

  4. Build the project

    Ctrl + Shift + B
  5. Run the app

    • Use Visual Studio's Start Debugging (F5)
    • Or run the output .exe from /bin/Debug

πŸ“Œ Usage

▢️ Guest Role Walkthrough

  1. Login using:

    Username: gost
    Password: gost
    
  2. 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)
  3. Navigate via numbered options in the console or UI-based forms in the WPF version.

About

Booking system with support for guests, owners, guides, and tourists β€” built as a desktop console application in C# using WPF and the MVVM architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages