Initial commit
This commit is contained in:
88
README.md
Normal file
88
README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# dwellops-platform
|
||||
|
||||
Modern HOA management platform — TypeScript monorepo.
|
||||
|
||||
Supports self-hosted single-tenant deployments and is architecturally ready for SaaS multi-tenant evolution.
|
||||
|
||||
## Stack
|
||||
|
||||
| Layer | Technology |
|
||||
| ------------------- | ---------------------------------------------- |
|
||||
| Package manager | pnpm workspaces + catalog |
|
||||
| Build orchestration | Turborepo |
|
||||
| Frontend | Next.js 16, App Router, CSS Modules, next-intl |
|
||||
| Backend | Fastify 5, Zod, Better Auth |
|
||||
| Database | PostgreSQL + Prisma |
|
||||
| Testing | Vitest, Playwright, Testing Library |
|
||||
| Storybook | v10 (Vite builder) |
|
||||
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
# Prerequisites: Node 24+, pnpm 10+, Docker
|
||||
|
||||
# 1. Copy environment files
|
||||
cp .env.example .env
|
||||
cp apps/api/.env.example apps/api/.env
|
||||
cp apps/web/.env.example apps/web/.env
|
||||
|
||||
# 2. Start local infrastructure
|
||||
docker compose up -d
|
||||
|
||||
# 3. Install dependencies
|
||||
pnpm install
|
||||
|
||||
# 4. Generate Prisma client and run migrations
|
||||
pnpm db:generate
|
||||
pnpm db:migrate:dev
|
||||
|
||||
# 5. Start dev servers
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
**Apps:**
|
||||
|
||||
- Web: http://localhost:3000
|
||||
- API: http://localhost:3001
|
||||
- API docs (Swagger): http://localhost:3001/documentation
|
||||
- Mailpit (local email): http://localhost:8025
|
||||
|
||||
## Scripts
|
||||
|
||||
| Command | Description |
|
||||
| --------------------- | ------------------------------------- |
|
||||
| `pnpm dev` | Start all dev servers |
|
||||
| `pnpm build` | Build all apps/packages |
|
||||
| `pnpm test` | Run unit/integration tests |
|
||||
| `pnpm test:e2e` | Run Playwright e2e tests |
|
||||
| `pnpm lint` | Lint all workspaces |
|
||||
| `pnpm typecheck` | Type-check all workspaces |
|
||||
| `pnpm format` | Format all files with Prettier |
|
||||
| `pnpm storybook` | Start Storybook |
|
||||
| `pnpm db:generate` | Generate Prisma client |
|
||||
| `pnpm db:migrate:dev` | Run dev migrations |
|
||||
| `pnpm db:studio` | Open Prisma Studio |
|
||||
| `pnpm i18n:aggregate` | Aggregate component translation files |
|
||||
|
||||
## Repository structure
|
||||
|
||||
```
|
||||
apps/
|
||||
api/ @dwellops/api — Fastify backend
|
||||
web/ @dwellops/web — Next.js frontend
|
||||
packages/
|
||||
config/ @dwellops/config — ESLint, Prettier, tsconfig, Stylelint, Vitest
|
||||
types/ @dwellops/types — shared TypeScript types
|
||||
schemas/ @dwellops/schemas — shared Zod schemas
|
||||
db/ @dwellops/db — Prisma client + data access boundary
|
||||
i18n/ @dwellops/i18n — i18n helpers
|
||||
ui/ @dwellops/ui — shared UI primitives
|
||||
test-utils/ @dwellops/test-utils — test factories, render helpers
|
||||
docs/
|
||||
scripts/
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Architecture](docs/architecture.md)
|
||||
- [Development guide](docs/development.md)
|
||||
Reference in New Issue
Block a user