9f13c0a23a
- docs: move server docs to docs/server/ and update all cross-references - docs: move web-roadmap.md to docs/web/roadmap.md and create docs/web/decisions.md - docs: update AGENTS.md with separate Server and Web sections
50 lines
2.3 KiB
Markdown
50 lines
2.3 KiB
Markdown
# Web Roadmap
|
|
|
|
## Product Boundary
|
|
|
|
- The Web client is a pure client-side rendered single-page application.
|
|
- Vite produces static assets only. The project does not use SSR, React Server Components, a Node API server, or a browser-specific business backend.
|
|
- The Web client consumes the same versioned REST API as future Android and other native clients.
|
|
- Production may serve `web/dist` from MyGO or a reverse proxy.
|
|
- Shared API contracts should remain client-neutral and eventually be described by OpenAPI.
|
|
|
|
## Foundation
|
|
|
|
The initial project contains only the framework and styling foundation:
|
|
|
|
- Node.js 24 and npm
|
|
- Vite
|
|
- React
|
|
- TypeScript in strict mode
|
|
- TanStack Query provider
|
|
- Tailwind CSS 4 through its Vite plugin
|
|
- Ant Design provider and components
|
|
- Oxlint from the Vite template
|
|
|
|
Ant Design owns reusable UI components and theme tokens. Tailwind CSS is initially limited to application layout, spacing, and responsive utilities.
|
|
|
|
## Planned Structure
|
|
|
|
```text
|
|
web/src/
|
|
├── app/ # Router, providers, and application composition
|
|
├── api/ # API client and generated contracts
|
|
├── components/ # Shared presentation components
|
|
├── features/ # Auth, files, account, and admin features
|
|
├── pages/ # Route entry points
|
|
├── lib/ # Framework-independent utilities
|
|
└── test/ # Shared test setup and fixtures
|
|
```
|
|
|
|
## Deferred Dependencies
|
|
|
|
Some dependencies are suggested for future implementation. Refer these only when the corresponding feature is implemented and propose better choices if any:
|
|
|
|
- `@ant-design/icons`: Add Ant Design-consistent application and action icons when real screens require them.
|
|
- `openapi-typescript`: Generate TypeScript API types from the shared OpenAPI document.
|
|
- `openapi-fetch`: Provide a small type-safe Fetch client based on generated OpenAPI types.
|
|
- `openapi-react-query`: Connect generated OpenAPI operations to TanStack Query if handwritten query adapters become repetitive.
|
|
- `zustand`: Manage a cross-route upload queue, bulk selection, or other complex client-only state if React state is insufficient.
|
|
- `vitest`: Run unit and integration tests using the Vite toolchain.
|
|
- `pdfjs-dist`: Preview PDF files in the browser when document preview is implemented.
|