Skip to content

JsAndDotNet/MultiTenantAppointmentsMvc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Basic MVC Appointment Booking Application

Basic Multi-Tenant appointment booking system created to play with MVC, Authentication, Patterns and Entity Framework.

It's nowehere near complete and a bit hacky in parts, but there's also plenty of good stuff in there!

Uses .NET instead of .NET Core. When I started .NET Core was at 1.1 and the related version of Entity Framework didn't fit my needs (you couldn't make MVC models from EF in another project easily).

If I was making it now, I'd use .NET Core. The processes of getting data, using patterns and presenting to a UI would be very similar.

Features

  • Responsive (works on all sizes from phone to desktop).

  • Authentication (tables moved to main DB to save money on hosting, but could be easily split out again)

  • Create a user (professional)

  • Add company details for that user

  • Invite employees to that company (they may take appointments or not).

  • Employees can set availability

  • Employees can book appointments for themselves

  • Company owners can book appointments for employees.

  • Load tested with 1 million companies and over 1 million professionals.

  • No unit tests. For examples of my unit testing, see my UK Accident Statistics project.

To Run

  • Clone Repro
  • Open in VS2017. You will also need MS SQL Server installed on your machine.
  • Change the database urls in AppointmentsMVC (web.config) and AppointmentsDb (app.config) projects.
  • Ensure 'AppointmentsMVC' is the startup project and hit Run.

If there's a problem, open the package manager console. It will state packages are missing. Click 'restore' to install them. Run again.

When the site starts:

  • Click 'Register' in the top right hand corner to register a new user (single factor auth, so you can add anything in the email field).

Register new user

  • Enter Profile

Profile

  • Enter Company Info

Company Info

  • Click on a date to enter an appointment and add one.

Appointments View

Create Appointment

  • Can now see the appointment in the list

Appointment

  • Also looks fine on iPhone.

iPhone View

  • Go to Admin dropdown and select - Company Locations.

Admin Menu

  • Enter a location or set of locations and save (these aren't actually used anywhere in the system).

Company Locations

To Add employees

  • Go to the Admin dropdown and select 'Keys'. This will enable you to invite users.
  • Click Add a professional to company.

Add employee step 1 Add employee step 2

  • Copy the URL.

Add employee step 3

  • LOG OUT!!!
  • Now paste the URL into the browser.
  • Select 'Yes'.

Join company

  • Register as a new user (yes, this should be improved!)

Join company

  • Enter professional details

Employee Details

  • It knows your are in that company. They can now create appointments for themself.

Employee Created

  • Click 'Appointments' and create an appointment as the employee for the ownwer to see.

Employee Appointment Booking

Company owner accessing employees' diary.

  • Log out and log in as the owner.
  • You can now see the employees' diary.

Owner Access Appointments

Owner Access Appointments 2

  • You can now add appointments for the employee.

Owner Creating appointment for employee

About

Simple Multi-Tenant Booking application using MVC (C#)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages