Skip to main content

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": { ... }
}
FieldTypeDescription
successbooleantrue on success, false on error
statusstringHTTP status as a string ("200", "422", etc.)
messagestringHuman-readable message in English
errorsobject | nullError hash { field: ["msg"] } only on 422, otherwise null
dataobject | nullPayload 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

RoleDescription
clientSearch, booking, reviews, profile
masterMaster: schedule, services, pricing, appointment confirmation
adminPlatform moderation, users, billing

Salon owner is determined not through role, but through salons.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