A Goddess’s Touch
Booking, payments, and operations webapp for a service business
System Overview
A Goddess’s Touch is a serverless booking and payments platform built on Square. The system consists of a Vue single-page application and a Flask API deployed on AWS Lambda via Zappa, with DynamoDB used for all operational state and caching.
Core Stack
Frontend
- Vue.js SPA
- Vuetify component system
- Vuex + Pinia state management
- Radar for geospatial UI
Backend
- Flask REST API
- Zappa serverless deployment
- Square API integration
Data
- DynamoDB (multi-table)
- Operational state
- Square response caching
Data Architecture
- Users – customers, staff, and affiliates
- User addresses – normalized location records
- Bookings – appointment lifecycle and payment state
- Affiliate program – referral attribution graph
- Cache – TTL-based Square API responses
Square Rate Limiting Strategy
Square enforces strict rate limits on catalog, customer, and order endpoints. To prevent UI instability and request amplification, the system uses a dedicated DynamoDB cache table with TTL expiration to coalesce high-frequency reads and minimize direct API calls.
Core Request Flows
- Customer booking → availability validation → Square checkout → DynamoDB commit
- Staff schedule update → API mutation → canonical state persisted
- Affiliate link → referral record created → booking attributed on payment
Design Principles
- Serverless-first deployment
- DynamoDB as canonical system of record
- External providers treated as constrained dependencies
- Cache over retry
- All booking logic enforced server-side