GlamB API
GlamB — an online booking platform for beauty salons, barbershops, and nail studios.
Target market: CIS + Eastern Europe (initial focus — Moldova).
Current stage: Phase 1 MVP (in progress).
Base URL
https://glamb.happydev.tech/api/v1
Response Envelope
Every API response contains exactly 5 fields:
{
"success": true,
"status": "200",
"message": "...",
"errors": null,
"data": { ... }
}
| Field | Type | Description |
|---|---|---|
success | boolean | true on success, false on error |
status | string | HTTP status as a string ("200", "422", etc.) |
message | string | Human-readable message in English |
errors | object | null | Error hash { field: ["msg"] } only on 422, otherwise null |
data | object | null | Payload on success, null on error |
Authentication
Most protected endpoints require a JWT Bearer token:
Authorization: Bearer <access_token>
- Access token: lifetime 15 minutes
- Refresh token: lifetime 30 days (with rotation)
More details → Auth
Roles
| Role | Description |
|---|---|
client | Search, booking, reviews, profile |
master | Master: schedule, services, pricing, appointment confirmation |
admin | Platform moderation, users, billing |
Salon owner is determined not through
role, but throughsalons.owner_id.
Stack
- Backend: Ruby 3.3+, Rails 8.1+, PostgreSQL 16+
- Auth: custom JWT (no Devise), bcrypt
- Authorization: Pundit (RBAC)
- Infra: Docker Compose, GitLab CI, Traefik, Hetzner Cloud