Skip to content
Diyar68 edited this page Oct 5, 2026 · 5 revisions

Welcome to the Slotify wiki!

Overview

Slotify is a web-based appointment reservation application that allows service providers to manage their services, availability, and appointments.

Customers can access a provider's public booking page through a shared link and book an appointment without creating an account.

The project is developed iteratively, starting with a small core version (V1) that focuses on the essential booking process. Additional functionality can be introduced in later versions.


Goals

The main goals of the application are:

  • Provide a simple appointment booking process for customers.
  • Allow customers to book appointments without creating an account.
  • Allow service providers to define their services and recurring availability.
  • Automatically calculate available booking times based on service duration, provider availability, and existing appointments.
  • Prevent conflicting or invalid bookings.
  • Allow providers to manage and track their appointments.

V1 Scope

The first version focuses on the core appointment booking workflow.

Provider

A provider can:

  • Create an account and log in.
  • Create and manage services.
  • Define recurring weekly availability.
  • Share a public booking page with customers.
  • View booked appointments and their details.
  • Cancel appointments.
  • Mark completed appointments as COMPLETED.
  • Mark missed appointments as NO_SHOW.

Customer

A customer does not need an account.

A customer can:

  • Open the provider's public booking page.
  • View the services offered by the provider.
  • Select a service.
  • Select a date.
  • View available booking times.
  • Select a start time.
  • Enter name, email address, and phone number.
  • Confirm the appointment.

Core Domain

V1 currently consists of four main entities:

  • Provider – The registered user who offers appointments.
  • ServiceOffering – A service offered by a provider with a defined duration.
  • Availability – The recurring weekly availability of a provider.
  • Appointment – A booking containing the selected service, time, status, and customer contact information.

Available time slots are calculated dynamically and are therefore not stored as separate entities.

Customers are also not stored as separate entities in V1. Customer contact information belongs to the individual appointment.


Technology

Backend

  • Java
  • Spring Boot
  • PostgreSQL

Frontend

  • React (planned for a later development stage)

The initial development focus is on designing and implementing the backend before building the frontend.


Development Approach

The project follows an iterative development approach.

The initial planning and implementation process is:

  1. Define requirements and use cases
  2. Design the domain model
  3. Define business rules
  4. Describe user flows and scenarios
  5. Design the REST API
  6. Implement the Spring Boot backend
  7. Add automated tests
  8. Build the React frontend
  9. Deploy the application

Features outside the V1 scope will be added incrementally when concrete requirements arise.


Documentation

Detailed documentation is available in the following Wiki pages:

  • Requirements & Use Cases
  • Domain Model
  • Business Rules
  • User Flows & Scenarios
  • API Design (planned)
  • Architecture (planned)

Future Ideas

Possible future extensions include:

  • Customer cancellation links
  • Email confirmations and reminders
  • Availability exceptions, holidays, and time off
  • Multiple employees per provider/business
  • Customer accounts
  • Multiple business locations
  • Online payments
  • Calendar integration
  • Appointment rescheduling
  • Statistics and reporting

These features are intentionally outside the V1 scope and may be introduced in later versions.

Clone this wiki locally