Files
trackgo-fe/.cursor/rules/frontend-overview.mdc
shancheas 2445df8e20 refactor: update documentation structure and guidelines for TrackGo
- 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.
2026-09-04 15:54:48 +07:00

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';
```