diff --git a/README.md b/README.md index d3ff122b7..d549a14f8 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,54 @@ Monorepo containing all Manacore projects with shared packages and unified tooling. +## Staging URLs + +All services are deployed to staging at `*.staging.manacore.ai`. + +### Web Applications + +| App | Staging URL | Description | +|-----|-------------|-------------| +| **ManaCore** | https://staging.manacore.ai | Central dashboard for all Mana apps | +| **Chat** | https://chat.staging.manacore.ai | AI chat application | +| **Calendar** | https://calendar.staging.manacore.ai | Calendar and scheduling | +| **Clock** | https://clock.staging.manacore.ai | World clock, timers, alarms | +| **Todo** | https://todo.staging.manacore.ai | Task management | + +### Backend APIs + +| Service | Staging URL | Port | +|---------|-------------|------| +| **Auth** | https://auth.staging.manacore.ai | 3001 | +| **Chat API** | https://chat-api.staging.manacore.ai | 3002 | +| **Calendar API** | https://calendar-api.staging.manacore.ai | 3016 | +| **Clock API** | https://clock-api.staging.manacore.ai | 3017 | +| **Todo API** | https://todo-api.staging.manacore.ai | 3018 | + +### Landing Pages (Cloudflare Pages) + +| Project | URL | +|---------|-----| +| **Chat** | https://chat-landing-90m.pages.dev | +| **Picture** | https://picture-landing.pages.dev | +| **ManaCore** | https://manacore-landing.pages.dev | +| **ManaDeck** | https://manadeck-landing.pages.dev | +| **Zitare** | https://zitare-landing.pages.dev | +| **Presi** | https://presi-landing.pages.dev | + ## Projects -| Project | Description | Tech Stack | -| ------------------ | ------------------------------- | ------------------------------ | -| **maerchenzauber** | AI-powered story generation app | NestJS, Expo, SvelteKit, Astro | -| **manacore** | Multi-app ecosystem platform | Expo, SvelteKit, Astro | -| **manadeck** | Card/deck management app | NestJS, Expo, SvelteKit | -| **memoro** | Voice memo & AI analysis app | Expo, SvelteKit, Astro | +| Project | Description | Tech Stack | +|---------|-------------|------------| +| **manacore** | Multi-app ecosystem platform | Expo, SvelteKit | +| **chat** | AI chat application | NestJS, Expo, SvelteKit | +| **calendar** | Calendar & scheduling | NestJS, SvelteKit | +| **clock** | World clock, timers, alarms | NestJS, SvelteKit | +| **todo** | Task management | NestJS, SvelteKit | +| **contacts** | Contact management | NestJS, SvelteKit | +| **manadeck** | Card/deck management | NestJS, Expo, SvelteKit | +| **picture** | AI image generation | NestJS, Expo, SvelteKit | +| **zitare** | Daily inspiration quotes | NestJS, Expo, SvelteKit | ## Getting Started @@ -17,6 +57,7 @@ Monorepo containing all Manacore projects with shared packages and unified tooli - Node.js 20+ - pnpm 9.15.0+ +- Docker (for local development) ### Installation @@ -24,71 +65,77 @@ Monorepo containing all Manacore projects with shared packages and unified tooli # Install pnpm globally (if not installed) npm install -g pnpm -# Install all dependencies +# Install all dependencies (also generates .env files) pnpm install + +# Start Docker infrastructure +pnpm docker:up ``` -### Development +### Quick Start + +Use `dev:*:full` commands to start any app with automatic database setup: ```bash -# Start all projects in dev mode -pnpm run dev +pnpm docker:up # Start PostgreSQL, Redis, MinIO +pnpm dev:chat:full # Start chat with auth + auto DB setup +pnpm dev:calendar:full # Start calendar with auth + auto DB setup +pnpm dev:clock:full # Start clock with auth + auto DB setup +pnpm dev:todo:full # Start todo with auth + auto DB setup +pnpm dev:manacore:full # Start manacore with all backends +``` -# Start a specific project -pnpm run maerchenzauber:dev -pnpm run manacore:dev -pnpm run manadeck:dev -pnpm run memoro:dev +### Development Commands +```bash # Build all projects -pnpm run build - -# Run tests -pnpm run test +pnpm build # Type check -pnpm run type-check +pnpm type-check + +# Lint +pnpm lint # Format code -pnpm run format +pnpm format ``` ## Shared Packages Located in `packages/`: -| Package | Description | -| --------------------------- | --------------------------------------- | -| `@manacore/shared-types` | Common TypeScript types | -| `@manacore/shared-supabase` | Unified Supabase client | -| `@manacore/shared-utils` | Utility functions (date, string, async) | -| `@manacore/shared-ui` | React Native UI components | - -### Using Shared Packages - -```typescript -// In any project -import { User, ApiResponse } from '@manacore/shared-types'; -import { createSupabaseClient } from '@manacore/shared-supabase'; -import { formatDate, truncate, retry } from '@manacore/shared-utils'; -``` +| Package | Description | +|---------|-------------| +| `@manacore/shared-auth` | Client-side auth for web/mobile | +| `@manacore/shared-nestjs-auth` | NestJS JWT validation guards | +| `@manacore/shared-ui` | Shared Svelte UI components | +| `@manacore/shared-storage` | S3-compatible storage (MinIO/Hetzner) | +| `@manacore/shared-types` | Common TypeScript types | +| `@manacore/shared-utils` | Utility functions | +| `@manacore/shared-theme` | Theme configuration | ## Repository Structure ``` manacore-monorepo/ -├── packages/ # Shared packages -│ ├── shared-types/ # TypeScript types -│ ├── shared-supabase/ # Supabase utilities -│ ├── shared-utils/ # Common utilities -│ └── shared-ui/ # React Native components -├── maerchenzauber/ # Storyteller project -├── manacore/ # Manacore apps project -├── manadeck/ # ManaDeck project -├── memoro/ # Memoro project -├── turbo.json # Turborepo configuration -├── pnpm-workspace.yaml # Workspace configuration -└── package.json # Root package +├── apps/ # Active product applications +│ ├── manacore/ # Central dashboard +│ ├── chat/ # AI chat app +│ ├── calendar/ # Calendar app +│ ├── clock/ # Clock/timer app +│ ├── todo/ # Task management +│ ├── contacts/ # Contact management +│ ├── manadeck/ # Card/deck app +│ ├── picture/ # AI image generation +│ └── zitare/ # Daily quotes +├── apps-archived/ # Archived projects +├── games/ # Game projects +├── services/ +│ └── mana-core-auth/ # Central auth service +├── packages/ # Shared packages +├── docker/ # Docker configuration +└── .github/workflows/ # CI/CD pipelines ``` ## Tooling @@ -96,28 +143,48 @@ manacore-monorepo/ - **Package Manager:** pnpm 9.15.0 - **Build System:** Turborepo - **Formatting:** Prettier -- **Node Version:** 20 (see .nvmrc) +- **Linting:** ESLint +- **Git Hooks:** Husky (pre-commit, pre-push) +- **Node Version:** 20+ ## Adding Dependencies ```bash -# Add to root (dev tools) +# Add to workspace root (dev tools only) pnpm add -D -w # Add to specific project -pnpm add --filter maerchenzauber +pnpm add --filter @chat/web # Add to shared package pnpm add --filter @manacore/shared-utils ``` -## Contributing +## Deployment -1. Create a feature branch -2. Make changes -3. Run `pnpm run format` and `pnpm run type-check` -4. Commit with conventional commit messages -5. Create pull request +### Deploy Landing Pages + +```bash +pnpm deploy:landing:chat +pnpm deploy:landing:picture +pnpm deploy:landing:manacore +pnpm deploy:landing:all # Deploy all landing pages +``` + +### Deploy to Staging + +```bash +# Tag-based deployment (triggers CI/CD) +git tag chat-staging-v1.0.0 +git push origin chat-staging-v1.0.0 +``` + +## Documentation + +- [CLAUDE.md](CLAUDE.md) - Detailed development guidelines +- [docs/LOCAL_DEVELOPMENT.md](docs/LOCAL_DEVELOPMENT.md) - Local setup guide +- [COMMANDS.md](COMMANDS.md) - All available commands +- [cicd/DEPLOYMENT.md](cicd/DEPLOYMENT.md) - Deployment documentation ## License