Andrew Martinez

A Goddess’s Touch

Booking, payments, and operations webapp for a service business
A Goddess’s Touch Purpose Architecture

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