/reservare

Appointment booking web app

Primary LanguageHaskell

En français

În română

На русском

Reservare

Online bookings for services and appointments

Overview

“Reservare” allows businesses to register services and resources that a customer can book and/or schedule an appointment for.

Use Case Diagram
Use Case Diagram

Book a service

State Machine Diagram
State Machine Diagram

Make an appointment

State Machine Diagram
State Machine Diagram

Superuser

  • Username
    $YESOD_SUPERUSER_USERNAME

  • Password
    $YESOD_SUPERUSER_PASSWORD

A superuser account is defined at deployment time. The superuser manages other users and grants or revokes administrator privileges to specific users.

Integration with external APIs

  • Email: Gmail API

    • Client id
      $YESOD_GOOGLE_CLIENT_ID
    • Client secret
      $YESOD_GOOGLE_CLIENT_SECRET
  • Payment gateway: Stripe

    • Public key
      $YESOD_STRIPE_PK
    • Secret key
      $YESOD_STRIPE_SK

    To simulate a successful payment, use test cards from the following list.

    To simulate payments that the issuer declines, use test cards from the following list.

  • Payment gateway: YooKassa

    • Shop ID
      $YESOD_YOOKASSA_SHOP_ID
    • Secret key
      $YESOD_YOOKASSA_SECRET_KEY

    To simulate a successful payment, use test cards from the following list.

    To simulate payments that the issuer declines, use test cards from the following list.

Search Engine Optimization

  • Google SEO
    $YESOD_GOOGLE_SITE_VERIFICATION
  • Bing SEO
    $YESOD_MS_VALIDATE
  • Yandex SEO
    $YESOD_YANDEX_VERIFICATION

Basic entities

User

A new user can sign up using an existing Google account or using a verified email address. Gmail API is used as an intermediary to send verification links to the user's inbox.

A user can be grated the administrator role by a superuser or by another administrator. Only users with the administrator role have access to administrative data.

Business

...

Workspace

...

Payment option

For each workspace, you can specify one or more payment options by selecting its type, name, and payment gateway.

If multiple payment gateways are configured for a workspace, they will be presented as options to the user booking the appointment.

If a workspace has only one payment option (payment gateway) set up, then it will be used as the default and thus one less step in the booking process.

At least one payment option (payment gateway) must be specified for the workspace. If none are specified, an error will occur when booking.

Service

...

Sector

A sector represents the type of activity of the service provided. Mainly used as search keys for services.

If necessary, a hierarchy of such sectors can be defined.

Staff

...

Assignement

...

Schedule

...

Booking

...

Entity Relationship Diagram
Entity Relationship Diagram

Demo

Click here to see demo

* Click on the Demo user accounts button to get a list of demo accounts