mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 17:24:30 +00:00
3.9 KiB
3.9 KiB
AnchorOS API Documentation
Overview
AnchorOS is a comprehensive salon management system built with Next.js, Supabase, and Stripe integration.
Authentication
- Client Authentication: Magic link via Supabase Auth
- Staff/Admin Authentication: Supabase Auth with role-based access
- Kiosk Authentication: API key based
API Endpoints
Public APIs
Services
GET /api/services- List all available servicesPOST /api/services- Create new service (Admin only)
Locations
GET /api/locations- List all salon locations
Availability
GET /api/availability/time-slots- Get available time slots for bookingPOST /api/availability/staff-unavailable- Mark staff unavailable (Staff auth required)
Bookings (Public)
POST /api/bookings- Create new bookingGET /api/bookings/[id]- Get booking detailsPUT /api/bookings/[id]- Update booking
Staff/Admin APIs (Aperture)
Dashboard
GET /api/aperture/dashboard- Dashboard dataGET /api/aperture/stats- Statistics
Staff Management
GET /api/aperture/staff- List staff membersPOST /api/aperture/staff- Create/Update staff
Resources
GET /api/aperture/resources- List resourcesPOST /api/aperture/resources- Manage resources
Reports
GET /api/aperture/reports/sales- Sales reportsGET /api/aperture/reports/payments- Payment reportsGET /api/aperture/reports/payroll- Payroll reports
Permissions
GET /api/aperture/permissions- Get role permissionsPOST /api/aperture/permissions- Update permissions
Kiosk APIs
POST /api/kiosk/authenticate- Authenticate kioskGET /api/kiosk/resources/available- Get available resources for kioskPOST /api/kiosk/bookings- Create walk-in bookingPUT /api/kiosk/bookings/[shortId]/confirm- Confirm booking
Payment APIs
POST /api/create-payment-intent- Create Stripe payment intent
Admin APIs
GET /api/admin/locations- List locations (Admin key required)POST /api/admin/users- Create staff/userPOST /api/admin/kiosks- Create kiosk
Data Models
User Roles
customer- End customersstaff- Salon staffartist- Service providersmanager- Location managersadmin- System administratorskiosk- Kiosk devices
Key Tables
locations- Salon locationsstaff- Staff membersservices- Available servicesresources- Physical resources (stations)customers- Customer profilesbookings- Service bookingskiosks- Kiosk devicesaudit_logs- System audit trail
Environment Variables
Required
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYSTRIPE_SECRET_KEY
Optional
ADMIN_ENROLLMENT_KEY- For staff enrollmentGOOGLE_SERVICE_ACCOUNT_KEY- For Calendar sync
Deployment
Prerequisites
- Node.js 18+
- Supabase account
- Stripe account
- Google Cloud (for Calendar)
Setup Steps
- Clone repository
- Install dependencies:
npm install - Configure environment variables
- Run database migrations:
npm run db:migrate - Seed data:
npm run db:seed - Build:
npm run build - Start:
npm start
Features
Core Functionality
- Multi-location salon management
- Real-time availability system
- Integrated payment processing
- Staff scheduling and payroll
- Customer relationship management
- Kiosk system for walk-ins
Advanced Features
- Role-based access control
- Audit logging
- Automated no-show handling
- Commission-based payroll
- Sales analytics and reporting
- Permission management
Security
- Row Level Security (RLS) in Supabase
- API key authentication for kiosks
- Magic link authentication for customers
- Encrypted payment processing
Support
For API issues or feature requests, please check the TASKS.md for current priorities or create an issue in the repository.