From 5b9c6358ce7108822f5bac24ef4589b862f782c3 Mon Sep 17 00:00:00 2001 From: kamask Date: Wed, 21 Oct 2026 15:54:58 +0300 Subject: [PATCH] docs: describe project domain, stack and delivery plan Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01XJAY6Rgre8viuBjhA6djfW --- CLAUDE.md | 17 +++++++++++++++++ README.md | 19 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index e1657fd..a3c3f95 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,5 +1,22 @@ You are an expert in TypeScript, Angular, and scalable web application development. You write functional, maintainable, performant, and accessible code following Angular and TypeScript best practices. +## Project Overview + +Pchelpcrm is a CRM for handling service requests (orders) of a private service professional: computer help, home repairs, furniture assembly, plumbing, electrical work, etc. The domain is deliberately generic: any "client calls, a job gets done" business fits. Currently used personally by the author, so keep it simple. + +Domain entities: + +- **User** — the owner of the personal account who works in the CRM (a PocketBase auth record). Everything below belongs to a user and must be isolated per user (API rules). +- **Client** — a customer of the user. A separate entity, not a user. +- **Request** — a service request (order). Belongs to exactly one client; one client can have many requests. +- **Category** — a request category. Dynamic: created and edited by the user, never hardcoded in code or enums. + +Auth: PocketBase auth collection, login by email + password. + +Stack: Angular (see rules below) + PocketBase (`pocketbase/pb_migrations/` holds the schema) + pnpm. Add other libraries (e.g. a UI component library) only when really needed. + +Delivery plan: after the first release the app ships as ONE Docker container (Angular app + PocketBase together, no docker-compose) deployable to a production server. Do not design anything that requires multiple containers. + ## TypeScript Best Practices - Use strict type checking diff --git a/README.md b/README.md index 3875e41..cf3f1ee 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,23 @@ # Pchelpcrm -This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 22.2.3. +A CRM for handling service requests (orders) of a private service professional: computer help, home repairs, furniture assembly, plumbing, electrical work and similar jobs. The domain is generic, so any business where a client asks for a job to be done fits. + +## Concepts + +- **User** — the account owner who works in the CRM. Signs in with email and password (PocketBase auth). Data of each user is isolated from others. +- **Client** — a customer of the user. +- **Request** — a service request (order). Belongs to one client; a client can have many requests. +- **Category** — a request category. Dynamic: created and edited by the user. + +## Stack + +- [Angular](https://angular.dev/) — frontend, generated with [Angular CLI](https://github.com/angular/angular-cli) 22.2.3 +- [PocketBase](https://pocketbase.io/) — backend, database and authentication +- [pnpm](https://pnpm.io/) — package manager + +## Distribution + +After the first release the application will be shipped as a single Docker container (the app and PocketBase together, no docker-compose) that can be deployed to a production server. ## Development server