Skip to content

marinakolova/BeautyBooking

Repository files navigation

BeautyBooking

A beauty bookings web application for hair, nails, spa etc. appointments. 📆 💅

🎯 My project for the ASP.NET Core course at SoftUni. (April 2020)

ℹ️ How It Works

  • Guest visitors:
    • browse categories of beauty services;
    • view salons with their services;
    • read blog posts.
  • Logged Users:
    • book appointments using interactive datepicker;
    • can cancel appointments;
    • can rate salons for which they had confirmed past appointments.
  • Salon Manager (user role):
    • confirms/declines users' appointments for particular salon;
    • controls what services are available for booking in the salon.
  • Admin:
    • creates/deletes blog posts, categories, salons and services;
    • can review the appointments history.

⚒️ Built With

  • ASP.NET Core 3.1
  • Entity Framework (EF) Core 3.1
  • Microsoft SQL Server Express
  • ASP.NET Identity System
  • MVC Areas with Multiple Layouts
  • Razor Pages, Sections, Partial Views
  • View Components
  • Repository Pattern
  • Auto Мapping
  • Dependency Injection
  • Status Code Pages Middleware
  • Exception Handling Middleware
  • Sorting, Filtering, and Paging with EF Core
  • Data Validation, both Client-side and Server-side
  • Data Validation in the Models and Input View Models
  • Custom Validation Attributes
  • Responsive Design
  • CloudinaryDotNet
  • Bootstrap
  • jQuery

⚙️ Application Configurations

1. The Connection string

is in appsettings.json. If you don't use SQLEXPRESS, you should replace Server=.\\SQLEXPRESS; with Server=.;

2. Database Migrations

would be applied when you run the application, since the ASPNETCORE-ENVIRONMENT is set to Development. If you change it, you should apply the migrations yourself.

3. Seeding sample data

would happen once you run the application, including Test Accounts:

4. Cloudinary Setup - optionally

Running without it:

You won't get an error for missing Cloudinary Credentials - it is handled by using predefined (already uploaded) image, when Cloudinary configuration is missing. So when you are creating content in admin panel, it will be added but not with the image you have chosen.

If you want to actually upload images, you should:

  1. Add Cloudinary Credentials in appsettings.json in the format:
  "Cloudinary": {
    "CloudName": "",
    "ApiKey": "",
    "ApiSecret": "",
    "EnvironmentVariable": ""
  }
  1. Update the Cloudinary Setup part of Startup.cs's ConfigureServices method as follows:
            // Cloudinary Setup
            Cloudinary cloudinary = new Cloudinary(new Account(
                this.configuration["Cloudinary:CloudName"],
                this.configuration["Cloudinary:ApiKey"],
                this.configuration["Cloudinary:ApiSecret"]));
            services.AddSingleton(cloudinary);

🖼️ Screenshot - Home Page

BeautyBooking-HomePage

🖼️ Screenshot - Make An Appointment Page

BeautyBooking-MakeAnAppointment

License

This project is licensed under the MIT License.

Acknowledgments

Using ASP.NET-MVC-Template developed by:

About

Web application for booking beauty appointments (ASP.NET Core 3.1). My project for the ASP.NET Core course at SoftUni.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published