Files
open-safetylog-ehs/docs/TODO.md
T
jayjennings c69eccb5c1
CI / Lint, typecheck, test, build (push) Canceled after 0s
CI / End-to-end tests (push) Canceled after 0s
feat: implement incident reporting and management system
- Add incident reporting routes and logic to handle creation, updating, and retrieval of incidents.
- Implement visibility rules for users based on roles (reporters, supervisors).
- Create tests for incident reporting functionality to ensure correctness and reliability.
- Introduce site and area management routes, including validation for area hierarchy.
- Establish user management routes with role-based access control for creating and updating users.
- Add setup routes for initializing the application with an organization and admin user.
- Implement shared enums and schemas for consistent validation and data handling across the application.
- Create a test helper for setting up an in-memory database and API client for testing.
- Add TypeScript configuration for server-side code with strict type checking and module resolution.
2026-10-06 10:51:18 -07:00

2.1 KiB

To-do

Open items that aren't tied to a single roadmap phase. Tick them off (or delete them) as they're resolved. Phase work lives in ROADMAP.md.

Project setup

  • Code of Conduct contact. CODE_OF_CONDUCT.md uses jay@equineform.com for now. Change it to a project alias (e.g. conduct@<project-domain>) once the project has its own domain.
  • Source code link. The About page links to https://www.equineform.com for now (default in src/lib/config.ts, overridable with VITE_SOURCE_URL). Change it to the public git repository once one exists, and use the same URL for issue links in CONTRIBUTING.md.
  • CI on Gitea. Confirm Actions is enabled for the repository and a runner is registered, then check the first run of .gitea/workflows/ci.yml passes. Keep the Playwright container tag in the workflow in sync with @playwright/test.

Phase 1 follow-ups

  • Test against real PostgreSQL. Server tests use PGlite (PostgreSQL compiled to WebAssembly). Add a CI job with a postgres service container that runs the server tests against real PostgreSQL too.
  • Docker build in CI. Build the image in CI once a runner with Docker is available.
  • Shared login rate limit. The login limiter is in memory, so it resets on restart and isn't shared between processes. Fine for one container; move it to the database before running several app instances.

Done

  • Docker verified 2026-10-06 (Docker 29.8, Compose v5.5): image builds (~315 MB), docker compose up with PostgreSQL 18 passes setup → sign-in → report smoke test; data and sessions survive down/up; clean shutdown; healthcheck healthy; runs as non-root; standalone PGlite container works; Secure cookie with an https:// PUBLIC_URL; web app loads with no errors.

  • Product name: Open SafetyLog EHS (decided 2026-10-06). Note: Insight Works sells a similarly named free "Safety Logbook" EHS app for Microsoft Business Central; run a USPTO trademark search before a public launch.

  • CONTRIBUTING.md and CODE_OF_CONDUCT.md (Contributor Covenant 2.1)

  • About page with source-code link (AGPL-3.0 section 13)