From d407b895be12f26f611229fc36a245706ae77170 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Thu, 14 May 2026 17:39:49 +0000 Subject: [PATCH] docs: archive monorepo and link to successor repos GRO-1081: Execute groombook/app monorepo decommission Co-Authored-By: Paperclip --- README.md | 225 ++++++------------------------------------------------ 1 file changed, 25 insertions(+), 200 deletions(-) diff --git a/README.md b/README.md index 3f56855..fbefe7e 100644 --- a/README.md +++ b/README.md @@ -1,218 +1,43 @@ -# GroomBook +# GroomBook Monorepo — Archived -> **The open-source scheduling and client management platform built specifically for independent pet groomers** — giving you the tools of enterprise software without the enterprise price tag or vendor lock-in. +> **This repository has been archived and replaced by standalone repositories.** -**Built for groomers, not corporations.** +## Successor Repositories ---- - -## Key Features - -**Stop chasing confirmations** -- **Customer portal** — Clients confirm or cancel appointments on their own. Reduce no-shows with an automated waitlist. - -**Your calendar, your way** -- **iCal calendar feed** — Push GroomBook appointments directly into Google Calendar or Apple Calendar. No app switching. - -**Know every pet at a glance** -- **Client & pet records** — Detailed profiles with grooming history, preferences, and breed-specific notes. Full appointment notes for context on every regular. -- **Quick-find search** — Find clients and pets instantly without digging through spreadsheets. - -**Staff access without stress** -- **Role-based access control (RBAC)** — Front desk sees bookings; only you see financials. Right access for every role. - -**Everything else** -- **Appointment scheduling** — Calendar management for single or multiple groomers -- **Service management** — Pricing, duration, and service catalog -- **POS & invoicing** — Payments, tips, and receipt generation -- **Automated reminders** — SMS and email notifications -- **Reporting dashboard** — Revenue, utilization, and trend analytics -- **Staff impersonation** — Managers can view the customer portal as any client, with full audit logging and session controls -- **PWA** — Installable on mobile devices, works offline - ---- - -## 🚀 Try the Demo - -[**Live Demo**](https://demo.groombook.app) — explore GroomBook without installing anything. - ---- - -## Quick Start - -### Docker Compose (recommended for indie groomers) - -Run GroomBook on your own hardware in minutes. Everything you need is in the box — no subscription, no vendor lock-in. - -```bash -git clone https://github.com/groombook/groombook.git -cd groombook - -# Start everything (Postgres + database migrations + API + web UI) -docker compose up --build -``` - -- **Web UI**: http://localhost:8080 -- **API**: http://localhost:3000 - -The default `docker-compose.yml` sets `AUTH_DISABLED=true` so you can explore the app without configuring an OIDC provider. **Important:** Disable this in any internet-facing deployment. - ---- - -## Tech Stack - -| Layer | Technology | +| Repository | Description | |---|---| -| Backend | [Hono](https://hono.dev/) (TypeScript, Node.js) | -| Frontend | React 19 + Vite + [vite-plugin-pwa](https://vite-pwa-org.netlify.app/) | -| Database | PostgreSQL via [CNPG](https://cloudnative-pg.io/) + [Drizzle ORM](https://orm.drizzle.team/) | -| Auth | OIDC via [Authentik](https://goauthentik.io/) | -| Infra | Kubernetes (namespace: `groombook`), Flux GitOps | -| CI | GitHub Actions (self-hosted `groombook-runners`) | +| [groombook/api](https://github.com/groombook/api) | Hono REST API (TypeScript, Node.js) | +| [groombook/web](https://github.com/groombook/web) | React PWA frontend | +| [groombook/charts](https://github.com/groombook/charts) | Helm charts for Kubernetes deployment | -## Repository Structure +## What Changed -``` -groombook/ -├── apps/ -│ ├── api/ # Hono REST API -│ └── web/ # React PWA -├── packages/ -│ ├── db/ # Drizzle schema + migrations -│ └── types/ # Shared TypeScript types -├── .github/ -│ └── workflows/ # CI/CD pipelines -└── docker-compose.yml -``` +- **Monorepo split complete** — The former `apps/api`, `apps/web`, and `packages/*` are now standalone repos +- **`@groombook/types`** — Inlined directly into `groombook/api` and `groombook/web` +- **E2E testing** — Now via Playwright MCP, no standalone repo needed +- **CI/CD** — Each repo has its own pipeline; see individual repos for status -## Getting Started +## Migration Notes -### Prerequisites - -- Node.js >= 20 -- pnpm >= 9 (`npm install -g pnpm`) -- Docker & Docker Compose (for local Postgres) - -### Local Development +If you were cloning `groombook/groombook` for local development: ```bash -# Clone the repo -git clone https://github.com/groombook/groombook.git -cd groombook +# API +git clone https://github.com/groombook/api.git +cd api && pnpm install && pnpm dev -# Install dependencies -pnpm install - -# Start local Postgres -docker compose up postgres -d - -# Run database migrations -DATABASE_URL=postgres://groombook:groombook@localhost:5432/groombook pnpm db:migrate - -# Start API and Web in parallel -pnpm dev +# Web (in a new terminal) +git clone https://github.com/groombook/web.git +cd web && pnpm install && pnpm dev ``` -API will be available at http://localhost:3000 -Web will be available at http://localhost:5173 +For full Docker Compose setup, see each repo's README. -### Environment Variables +## Archive Info -#### API (`apps/api/.env`) - -```env -DATABASE_URL=postgres://groombook:groombook@localhost:5432/groombook -OIDC_ISSUER=https://authentik.example.com -OIDC_AUDIENCE=groombook -CORS_ORIGIN=http://localhost:5173 -PORT=3000 -``` - -### Running Tests - -```bash -# Unit tests (vitest) -pnpm test - -# E2E tests (Playwright) — requires the full Docker Compose stack to be running -docker compose up -d --wait -pnpm --filter @groombook/e2e test - -# Open the Playwright UI (interactive test runner) -pnpm --filter @groombook/e2e test:ui - -# View the last E2E test report -pnpm --filter @groombook/e2e test:report -``` - -E2E tests target the Docker Compose stack (`http://localhost:8080`). They use API route mocking where needed so happy-path tests are deterministic without requiring seed data. - -### Building - -```bash -pnpm build -``` - -## Self-Hosting - -### Production Configuration - -Copy `.env.example` to `.env` and configure: - -```bash -cp .env.example .env -``` - -Key variables to update for production: - -| Variable | Description | -|---|---| -| `DATABASE_URL` | PostgreSQL connection string | -| `AUTH_DISABLED` | Set to `false` in production | -| `OIDC_ISSUER` | Authentik issuer URL | -| `OIDC_AUDIENCE` | OAuth2 audience (default: `groombook`) | -| `CORS_ORIGIN` | Public URL of the web frontend | - -To use your `.env` file with Docker Compose: - -```bash -docker compose --env-file .env up --build -``` - -### Kubernetes (production-grade deployments) - -See the [groombook/infra](https://github.com/groombook/infra) repository for Kubernetes manifests and Flux configuration. - -Groom Book is deployed in the `groombook` Kubernetes namespace using: -- **CNPG** for PostgreSQL -- **Authentik** for OIDC authentication -- **Flux** for GitOps-managed deployments +This repository was archived on 2026-05-14 as part of the monorepo decommission ([GRO-1081]). +The history is preserved but the repo is read-only. --- -## Contributing - -GroomBook thrives on contributions from the grooming community. Whether you're a groomer with a feature request, a developer fixing a bug, or someone improving docs — we'd love your help. - -1. Fork the repository -2. Create a feature branch (`git checkout -b feature/my-feature`) -3. Commit your changes -4. Open a pull request - -All PRs require CI to pass before merge. See [CONTRIBUTING.md](./CONTRIBUTING.md) for details. - ---- - -## Why GroomBook? - -- **Open source** — You own your data. No vendor lock-in. -- **Purpose-built** — Features designed for grooming workflows, not generic scheduling. -- **Self-hosted or managed** — Run it yourself for free, or pay for hosted support (coming soon). -- **Community-driven** — Used and built by actual groomers. - ---- - -## License - -AGPL-3.0 - +*For Kubernetes deployments, see [groombook/infra](https://github.com/groombook/infra) (private).* \ No newline at end of file -- 2.52.0