Add initial project configuration and setup for Reference Board Viewer application. Include EditorConfig for consistent coding styles, pre-commit hooks for linting and formatting, Docker Compose for local development with PostgreSQL and MinIO, and a Nix flake for development environment management. Establish CI/CD pipeline for automated testing and deployment.

This commit is contained in:
Danilo Reyes
2025-11-01 22:28:46 -06:00
parent 58f463867e
commit 1bc657e0fd
33 changed files with 1756 additions and 38 deletions

View File

@@ -32,26 +32,26 @@ Implementation tasks for the Reference Board Viewer, organized by user story (fu
**Goal:** Set up development environment, project structure, and CI/CD
- [ ] T001 Initialize Git repository structure (README.md, .gitignore, .editorconfig)
- [ ] T002 [P] Create flake.nix with development environment per nix-package-verification.md
- [ ] T003 [P] Update shell.nix with all dependencies from nix-package-verification.md
- [ ] T004 [P] Create .envrc for direnv automatic shell activation
- [ ] T005 Initialize backend directory structure in backend/app/{auth,boards,images,database,api,core}
- [ ] T006 [P] Initialize frontend directory with SvelteKit: frontend/src/{lib,routes}
- [ ] T007 [P] Create backend/pyproject.toml with uv and dependencies
- [ ] T008 [P] Create frontend/package.json with Svelte + Konva.js dependencies
- [ ] T009 Set up pre-commit hooks in .pre-commit-config.yaml (Ruff, ESLint, Prettier)
- [ ] T010 [P] Create CI/CD pipeline config (.github/workflows/ci.yml or equivalent)
- [ ] T011 [P] Create backend/.env.example with all environment variables
- [ ] T012 [P] Create frontend/.env.example with API_URL and feature flags
- [ ] T013 [P] Configure Ruff in backend/pyproject.toml with Python linting rules
- [ ] T014 [P] Configure ESLint + Prettier in frontend/.eslintrc.js and .prettierrc
- [ ] T015 Create pytest configuration in backend/pytest.ini with coverage threshold 80%
- [ ] T016 [P] Configure Vitest in frontend/vite.config.js for frontend testing
- [ ] T017 Create backend/alembic.ini for database migrations
- [ ] T018 Initialize Alembic migrations in backend/alembic/versions/
- [ ] T019 [P] Create documentation structure in docs/{api,user-guide,deployment}
- [ ] T020 Create Docker Compose for local development (PostgreSQL + MinIO) in docker-compose.dev.yml
- [X] T001 Initialize Git repository structure (README.md, .gitignore, .editorconfig)
- [X] T002 [P] Create flake.nix with development environment per nix-package-verification.md
- [X] T003 [P] Update shell.nix with all dependencies from nix-package-verification.md
- [X] T004 [P] Create .envrc for direnv automatic shell activation
- [X] T005 Initialize backend directory structure in backend/app/{auth,boards,images,database,api,core}
- [X] T006 [P] Initialize frontend directory with SvelteKit: frontend/src/{lib,routes}
- [X] T007 [P] Create backend/pyproject.toml with uv and dependencies
- [X] T008 [P] Create frontend/package.json with Svelte + Konva.js dependencies
- [X] T009 Set up pre-commit hooks in .pre-commit-config.yaml (Ruff, ESLint, Prettier)
- [X] T010 [P] Create CI/CD pipeline config (.github/workflows/ci.yml or equivalent)
- [X] T011 [P] Create backend/.env.example with all environment variables
- [X] T012 [P] Create frontend/.env.example with API_URL and feature flags
- [X] T013 [P] Configure Ruff in backend/pyproject.toml with Python linting rules
- [X] T014 [P] Configure ESLint + Prettier in frontend/.eslintrc.js and .prettierrc
- [X] T015 Create pytest configuration in backend/pytest.ini with coverage threshold 80%
- [X] T016 [P] Configure Vitest in frontend/vite.config.js for frontend testing
- [X] T017 Create backend/alembic.ini for database migrations
- [X] T018 Initialize Alembic migrations in backend/alembic/versions/
- [X] T019 [P] Create documentation structure in docs/{api,user-guide,deployment}
- [X] T020 Create Docker Compose for local development (PostgreSQL + MinIO) in docker-compose.dev.yml
**Deliverables:**
- Complete project structure
@@ -65,21 +65,21 @@ Implementation tasks for the Reference Board Viewer, organized by user story (fu
**Goal:** Database schema, configuration, shared utilities
- [ ] T021 [P] Create database configuration in backend/app/core/config.py (load from .env)
- [ ] T022 [P] Create database connection in backend/app/database/session.py (SQLAlchemy engine)
- [ ] T023 [P] Create base database model in backend/app/database/base.py (declarative base)
- [ ] T024 [P] Implement dependency injection utilities in backend/app/core/deps.py (get_db session)
- [X] T021 [P] Create database configuration in backend/app/core/config.py (load from .env)
- [X] T022 [P] Create database connection in backend/app/database/session.py (SQLAlchemy engine)
- [X] T023 [P] Create base database model in backend/app/database/base.py (declarative base)
- [X] T024 [P] Implement dependency injection utilities in backend/app/core/deps.py (get_db session)
- [ ] T025 Create initial migration 001_initial_schema.py implementing full schema from data-model.md
- [ ] T026 [P] Create CORS middleware configuration in backend/app/core/middleware.py
- [ ] T027 [P] Create error handler utilities in backend/app/core/errors.py (exception classes)
- [ ] T028 [P] Implement response schemas in backend/app/core/schemas.py (base Pydantic models)
- [ ] T029 [P] Create MinIO client utility in backend/app/core/storage.py (boto3 wrapper)
- [ ] T030 [P] Create logging configuration in backend/app/core/logging.py
- [ ] T031 [P] Create FastAPI app initialization in backend/app/main.py with all middleware
- [ ] T032 [P] Create frontend API client base in frontend/src/lib/api/client.ts (fetch wrapper with auth)
- [ ] T033 [P] Create frontend auth store in frontend/src/lib/stores/auth.ts (Svelte writable store)
- [ ] T034 [P] Create frontend error handling utilities in frontend/src/lib/utils/errors.ts
- [ ] T035 [P] Implement frontend toast notification system in frontend/src/lib/components/Toast.svelte
- [X] T026 [P] Create CORS middleware configuration in backend/app/core/middleware.py
- [X] T027 [P] Create error handler utilities in backend/app/core/errors.py (exception classes)
- [X] T028 [P] Implement response schemas in backend/app/core/schemas.py (base Pydantic models)
- [X] T029 [P] Create MinIO client utility in backend/app/core/storage.py (boto3 wrapper)
- [X] T030 [P] Create logging configuration in backend/app/core/logging.py
- [X] T031 [P] Create FastAPI app initialization in backend/app/main.py with all middleware
- [X] T032 [P] Create frontend API client base in frontend/src/lib/api/client.ts (fetch wrapper with auth)
- [X] T033 [P] Create frontend auth store in frontend/src/lib/stores/auth.ts (Svelte writable store)
- [X] T034 [P] Create frontend error handling utilities in frontend/src/lib/utils/errors.ts
- [X] T035 [P] Implement frontend toast notification system in frontend/src/lib/components/Toast.svelte
**Deliverables:**
- Database schema created