- Revised the `doc-updater` documentation to clarify the separation between user and technical documentation, specifying locations and audiences for each type. - Introduced new rules for authoring user documentation in VitePress, emphasizing the exclusion of technical content and the use of PlantUML for diagrams. - Added a new `documentation.mdc` file to outline the documentation split and rules for maintaining clarity and consistency across the codebase. - Updated existing documentation to reflect the new guidelines, ensuring a streamlined approach to documentation management. These changes enhance the clarity and organization of documentation efforts, improving the overall user experience and maintainability of the codebase.
48 lines
2.5 KiB
Plaintext
48 lines
2.5 KiB
Plaintext
---
|
|
description: trackgo-fe monorepo map — apps, packages, where to develop
|
|
alwaysApply: true
|
|
---
|
|
|
|
# trackgo-fe Overview
|
|
|
|
pnpm + Turborepo monorepo. Work from the repository root. Package manager: `pnpm@8.15.6`.
|
|
|
|
## Where to work
|
|
|
|
| Role | Path | Notes |
|
|
|---|---|---|
|
|
| **Product development** | `apps/web/` | Primary app — features, auth, modules |
|
|
| **Component / API reference** | `apps/showcase/` | Living demos of `@repo/*` usage — copy patterns, do not ship product here |
|
|
| **User documentation** | `apps/docs-dev/` | VitePress user guides (`pnpm dev:docs-dev`) — features and usage only; do not add developer architecture pages |
|
|
| **Technical documentation** | sibling `trackgo-be/docs/` | MkDocs / TechDocs — stack, architecture, how to run (web, landing, mobile, backend) |
|
|
| Shared UI / forms / foundations | `packages/ui` → `@repo/ui/*` | |
|
|
| HTTP, data services, telemetry | `packages/core-api` → `@repo/core-api/*` | |
|
|
| Storage | `packages/core-storage` → `@repo/core-storage` | |
|
|
| i18n | `packages/core-i18n` → `@repo/core-i18n` | |
|
|
| Events | `packages/core-events` → `@repo/core-events` | |
|
|
| Shared utilities | `packages/utils` → `@repo/utils` | |
|
|
| Brand assets | `packages/brand` → `@repo/brand` | |
|
|
| Tooling configs | `packages/configs` | ESLint + TypeScript bases |
|
|
| Desktop wrapper | `apps/desktop/` | Embeds `apps/web` via Electron |
|
|
| Landing | `apps/landing/` | Marketing SPA only |
|
|
|
|
## Hard rules
|
|
|
|
- Implement product features in `apps/web`, not in `showcase` or `docs-dev`.
|
|
- Before inventing UI or package usage, match `apps/showcase` demos (component/API shape). User workflows: `apps/docs-dev`. Technical FE architecture: sibling `trackgo-be/docs/`.
|
|
- Prefer `@repo/ui`, `@repo/core-*`, `@repo/utils` over app-local duplicates or raw Mantine/axios.
|
|
- Env files live **inside the app** (`apps/web/.env*`), never at monorepo root. Read env via `src/core/environment` (`ENV`), not `import.meta.env` in components.
|
|
- Run scripts from root: `pnpm dev:web`, `pnpm dev:showcase`, `pnpm lint`, `pnpm typecheck:web`, `pnpm test`, `pnpm test:e2e:web`, `pnpm check:all`.
|
|
|
|
## Import map (preferred)
|
|
|
|
```ts
|
|
import { Button, Text } from '@repo/ui/components';
|
|
import { FieldTextInput } from '@repo/ui/form'; // or @repo/ui/components
|
|
import { EnterpriseModuleProvider } from '@repo/ui/foundations';
|
|
import { compose, required } from '@repo/ui/validators';
|
|
import { createHttpClient } from '@repo/core-api/http-client';
|
|
import { CommonRemoteDataServices } from '@repo/core-api/data-services';
|
|
import { useTranslation, Trans } from '@repo/core-i18n';
|
|
```
|