Software Design Specification
INTRODUCTION
1.1 Purpose
The purpose of this document is to provide a detailed design for the Pink & Pearl Spa
Appointment Booking System. This SDS will guide developers in implementing the system as
per the requirements outlined in the Software Requirements Specification (SRS).
1.2 System Overview
The Pink & Pearl Spa Appointment Booking System is a web-based application that allows
clients to book, reschedule, and cancel appointments online. It provides real-time availability of
services and staff, automated reminders, and a dashboard for spa administrators to manage
schedules and generate reports.
1.3 Design Map
This document is organized into the following sections:
Design Considerations: Assumptions, constraints, and system environment.
Architecture: High-level system structure and components.
Database Schema: Tables, fields, and relationships.
High-Level Design: Overview of system modules and workflows.
Low-Level Design: Detailed design of individual modules.
User Interface Design: Screens and application controls.
1.4 Supporting Materials
Software Requirements Specification (SRS) for the Pink & Pearl Spa Appointment
Booking System.
Agile Software Development Methodology.
1.5 Definitions and Acronyms
SDS: Software Design Specification.
SRS: Software Requirements Specification.
PHP: A server-side scripting language.
MySQL: A relational database management system.
M-Pesa: A mobile money transfer service.
DESIGN CONSIDERATIONS
2.1 Assumptions
Clients have access to smartphones or computers with internet connectivity.
Spa staff are trained to use the system.
Integration with external payment gateways (M-Pesa, PayPal) is feasible.
2.2 Constraints
The system must comply with GDPR for data privacy and PCI DSS for payment security.
The system must be accessible on low-end smartphones with limited processing power.
2.3 System Environment
Hardware: Cloud-based hosting (e.g., AWS, DigitalOcean). Accessible on devices with
at least 2GB RAM and a modern web browser.
Software: PHP, MySQL, HTML, CSS, JavaScript.
Operating System: Windows, Linux, macOS,Android.
2.4 Design Methodology
The system will be developed using the Agile methodology, with iterative development and
regular user feedback. Each sprint will focus on delivering specific features, such as online
booking, real-time availability, and automated notifications.
2.5 Risks and Volatile Areas
Risk: Integration with M-Pesa API may face delays.
Mitigation: Allocate buffer time in the project schedule and explore alternative payment
gateways.
ARCHITECTURE
3.1 Overview
The system follows a three-tier architecture:
1. Presentation Layer (Frontend): HTML, CSS, JavaScript, and Bootstrap for a
responsive user interface.
2. Application Layer (Backend): PHP for handling business logic and user authentication.
3. Data Layer (Database): MySQL for storing appointments, user accounts, payment
records, and analytics data.
3.2 Subsystem, Component, or Module 1 ...N
Client Panel: Allows clients to book appointments, view booking history, and receive
notifications.
Administrator Dashboard: Enables spa administrators to manage appointments, staff
schedules, and generate reports.
Service Provider Panel: Displays daily schedules for therapists and beauticians.
3.3 Strategy 1...N
Strategy 1: Use RESTful APIs for communication between the frontend and backend.
Strategy 2: Implement role-based access control (RBAC) to secure sensitive data.
DATABASE SCHEMA
4.1 Tables, Fields, and Relationships
4.1.1 Databases
Production Database: SpaDB_Production.
Development Database: SpaDB_Development.
4.1.2 New Tables
Clients: Stores client information (name, contact info, preferences).
Appointments: Stores appointment details (service, time slot, staff).
Staff: Stores staff information (name, role, availability).
Payments: Stores payment records (amount, payment method, status).
4.1.3 New Fields(s)
+------------+------------+--------+----+----------------------------+
| Table | Field | Data | * | Field Description |
| Name | Name | Type | *A | |
| | | | ll | |
| | | | ow | |
||||N||
| | | | ul | |
| | | | ls | |
| | | | ** | |
+------------+------------+--------+----+----------------------------+
| Clients | ClientID | Int | N | Unique identifier for each |
| | | | | client. |
+------------+------------+--------+----+----------------------------+
| Appointmen | Appointmen | Int | N | Unique identifier for each |
| ts | tID | | | appointment. |
+------------+------------+--------+----+----------------------------+
| Staff | StaffID | Int | N | Unique identifier for each |
| | | | | staff member. |
+------------+------------+--------+----+----------------------------+
4.1.4 Fields Change(s)
No changes to existing fields.
4.1.5 All Other Changes
Stored Procedures: For booking, rescheduling, and canceling appointments.
Indexes: On ClientID, AppointmentID, and StaffID for faster queries.
4.2 Data Migration
Existing client and staff data will be migrated from the current manual system to the new
database.
HIGH-LEVEL DESIGN
5.1 View / Model Element 1...N
Client View: Allows clients to book appointments, view booking history, and receive
notifications.
Admin View: Allows administrators to manage appointments, staff schedules, and
generate reports.
Staff View: Displays daily schedules for therapists and beauticians.
LOW-LEVEL DESIGN
6.1 Module 1...N
Booking Module: Handles appointment booking, rescheduling, and cancellation.
Notification Module: Sends SMS/email reminders for upcoming appointments.
Payment Module: Integrates with M-Pesa, PayPal, and credit/debit cards for payments.
USER INTERFACE DESIGN
7.1 Application Controls
Common Controls: Navigation menu, search bar, and logout button on all screens.
Look and Feel: Minimalist design with high contrast for accessibility.
7.2 Screen 1...N
Client Booking Screen: Dropdown menus for services, calendar for time slots, and
payment options.
Admin Dashboard: Tabs for managing appointments, staff schedules, and generating
reports.
Staff Schedule Screen: Daily schedule view with notifications for new appointments.
APPENDICES
Appendix A Project Timeline
Phase 1: Backend Development (PHP & MySQL) – 2 weeks.
Phase 2: Frontend Development (HTML, CSS, JavaScript) – 3 weeks.
Phase 3: Payment & Notification System – 2 weeks.
Phase 4: Testing and Deployment – 1 week