chore: initial project structure
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Tanabata File Manager
|
||||
|
||||
Multi-user, tag-based web file manager for images and video.
|
||||
|
||||
## Architecture
|
||||
|
||||
Monorepo: `backend/` (Go) + `frontend/` (SvelteKit).
|
||||
|
||||
- Backend: Go + Gin + pgx v5 + goose migrations. Clean Architecture.
|
||||
- Frontend: SvelteKit SPA + Tailwind CSS + CSS custom properties.
|
||||
- DB: PostgreSQL 14+.
|
||||
- Auth: JWT Bearer tokens.
|
||||
|
||||
## Key documents (read before coding)
|
||||
|
||||
- `openapi.yaml` — full REST API specification (36 paths, 58 operations)
|
||||
- `docs/GO_PROJECT_STRUCTURE.md` — backend architecture, layer rules, DI pattern
|
||||
- `docs/FRONTEND_STRUCTURE.md` — frontend architecture, CSS approach, API client
|
||||
- `docs/Описание.md` — product requirements in Russian
|
||||
- `backend/migrations/001_init.sql` — database schema (4 schemas, 16 tables)
|
||||
|
||||
## Design reference
|
||||
|
||||
The `docs/reference/` directory contains the previous Python/Flask version.
|
||||
Use its visual design as the basis for the new frontend:
|
||||
- Color palette: #312F45 (bg), #9592B5 (accent), #444455 (tag default), #111118 (elevated)
|
||||
- Font: Epilogue (variable weight)
|
||||
- Dark theme is primary
|
||||
- Mobile-first layout with bottom navbar
|
||||
- 160×160 thumbnail grid for files
|
||||
- Colored tag pills
|
||||
- Floating selection bar for multi-select
|
||||
|
||||
## Backend commands
|
||||
```bash
|
||||
cd backend
|
||||
go run ./cmd/server # run dev server
|
||||
go test ./... # run all tests
|
||||
```
|
||||
|
||||
## Frontend commands
|
||||
```bash
|
||||
cd frontend
|
||||
npm run dev # vite dev server
|
||||
npm run build # production build
|
||||
npm run generate:types # regenerate API types from openapi.yaml
|
||||
```
|
||||
|
||||
## Conventions
|
||||
|
||||
- Go: gofmt, no global state, context.Context as first param in all service methods
|
||||
- TypeScript: strict mode, named exports
|
||||
- SQL: snake_case, all migrations via goose
|
||||
- API errors: { code, message, details? }
|
||||
- Git: conventional commits (feat:, fix:, docs:, refactor:)
|
||||
Reference in New Issue
Block a user