feat: update TODO list with new tasks for station import, track management, and testing enhancements
Some checks failed
Backend CI / lint-and-test (push) Failing after 36s
Frontend CI / lint-and-build (push) Successful in 15s

This commit is contained in:
2025-10-11 17:29:15 +02:00
parent 965de3a0f2
commit 779299ca63

52
TODO.md
View File

@@ -13,35 +13,67 @@
- [x] Implement authentication flow (backend JWT, frontend login/register forms).
- [x] Build map visualization integrating Leaflet with OSM tiles.
- [ ] Create railway builder tools (track placement, station creation) with backend persistence APIs.
- [ ] Establish train scheduling service with validation rules and API endpoints.
- [ ] Define geographic bounding boxes and filtering rules for importing real-world stations from OpenStreetMap.
- [ ] Implement an import script/CLI that pulls OSM station data and normalizes it to the PostGIS schema.
- [ ] Expose backend CRUD endpoints for stations (create, update, archive) with validation and geometry handling.
- [ ] Build React map tooling for manual station placement and editing, including form validation.
- [ ] Define track selection criteria and tagging rules for harvesting OSM rail segments within target regions.
- [ ] Extend the importer to load track geometries and associate them with existing stations.
- [ ] Implement backend track-management APIs with length/speed validation and topology checks.
- [ ] Create a frontend track-drawing workflow (polyline editor, snapping to stations, undo/redo).
- [ ] Design train connection manager requirements (link trains to operating tracks, manage consist data).
- [ ] Implement backend services and APIs to attach trains to routes and update assignments.
- [ ] Add UI flows for managing train connections, including visual feedback on the map.
- [ ] Establish train scheduling service with validation rules, conflict detection, and persistence APIs.
- [ ] Provide frontend scheduling tools (timeline or table view) for creating and editing train timetables.
- [ ] Develop frontend dashboards for resources, schedules, and achievements.
- [ ] Add real-time simulation updates (WebSocket layer, frontend subscription hooks).
## Phase 3 Data & Persistence
- [x] Design PostgreSQL/PostGIS schema and migrations (Alembic or similar).
- [ ] Implement data access layer with SQLAlchemy and repository abstractions.
- [ ] Seed initial data fixtures for development/demo purposes.
- [ ] Integrate caching strategy (Redis) for map tiles and frequent queries.
- [x] Implement data access layer with SQLAlchemy and repository abstractions.
- [ ] Decide on canonical fixture scope (demo geography, sample trains) and document expected dataset size.
- [ ] Author fixture generation scripts that export JSON/GeoJSON compatible with the repository layer.
- [ ] Create ingestion utilities to load fixtures into local and CI databases.
- [ ] Provision a Redis instance/container for local development.
- [ ] Add caching abstractions in backend services (e.g., network snapshot, map layers).
- [ ] Implement cache invalidation hooks tied to repository mutations.
## Phase 4 Testing & Quality
- [ ] Write unit tests for backend services and models.
- [ ] Add frontend component and hook tests (Jest + React Testing Library).
- [ ] Implement end-to-end test suite (Playwright/Cypress) covering critical flows.
- [ ] Set up load/performance testing harness for scheduling and simulation.
- [x] Write unit tests for backend services and models.
- [ ] Configure Jest/RTL testing utilities and shared mocks for Leaflet and network APIs.
- [ ] Write component tests for map controls, station builder UI, and dashboards.
- [ ] Add integration tests for custom hooks (network snapshot, scheduling forms).
- [x] Stand up Playwright/Cypress project structure with authentication helpers.
- [x] Script login end-to-end flow (Playwright).
- [ ] Script station creation end-to-end flow.
- [ ] Script track placement end-to-end flow.
- [ ] Script scheduling end-to-end flow.
- [ ] Define load/performance targets (requests per second, simulation latency) and tooling.
- [ ] Implement performance test harness covering scheduling and real-time updates.
## Phase 5 Deployment & Ops
- [ ] Create Dockerfiles for frontend and backend, plus docker-compose for local dev.
- [x] Create Dockerfile for frontend.
- [x] Create Dockerfile for backend.
- [x] Create docker-compose for local development with Postgres/Redis dependencies.
- [ ] Add task runner commands to orchestrate container workflows.
- [ ] Set up CI/CD pipeline for automated builds, tests, and container publishing.
- [ ] Provision infrastructure scripts (Terraform/Ansible) targeting initial cloud environment.
- [ ] Define environment configuration strategy (secrets management, config maps).
- [ ] Configure observability stack (logging, metrics, tracing).
- [ ] Integrate tracing/logging exporters into backend services.
- [ ] Document deployment pipeline and release process.
## Phase 6 Polish & Expansion
- [ ] Add leaderboards and achievements logic with UI integration.
- [ ] Design data model changes required for achievements and ranking.
- [ ] Implement accessibility audit fixes (WCAG compliance).
- [ ] Conduct accessibility audit (contrast, keyboard navigation, screen reader paths).
- [ ] Optimize asset loading and introduce lazy loading strategies.
- [ ] Establish performance budgets for bundle size and render times.
- [ ] Evaluate multiplayer/coop roadmap and spike POCs where feasible.
- [ ] Prototype networking approach (WebRTC/WebSocket) for cooperative sessions.