Skip to content

Technical Quick Start

Run the root Rust/Loco application for local development. The Rails application is archived in git history and is no longer runnable from this checkout. Read the 0.6 release notes before setting up a new installation.

There is no supported rollback from 0.6 to Rails. A full Rails export at the transition is an operator action, not an automatic import or a claim that an export has already happened. Any retained Rails deployment contains only its pre-cutover state. Preserve data written in 0.6 with a separate Rust-side export; returning to the old site would not carry those records back. These notes do not promise that Rails can import that export or provide a lossless switchback.

Prerequisites

Install Git and mise, then clone the repository:

git clone https://github.com/damacus/med-tracker.git
cd med-tracker
mise trust
mise install

The committed mise.toml selects the tools. A tool installation failure is a setup failure, not an application test result. Docker is needed for the repository's disposable integration and browser test services. Local development also needs PostgreSQL 18 and the native libraries used by the Rust build; see the repository Taskfile for the platform-specific ICU configuration.

Prepare a private development database

Create a new empty PostgreSQL 18 database. Keep setup credentials separate from the restricted application login. Follow the role and extension requirements in Loco database setup.

Use task db:migrate MIGRATION_DATABASE_URL=... for schema installation, or task db:prepare SEED_DATABASE_URL=... to install the schema and synthetic development fixtures. Replace ... with your private setup connection URL. Do not use either path to adopt an existing Rails database. Seeding rejects populated application databases and production environments.

Fixture passwords are password. Keep a seeded development instance private; do not use synthetic accounts for real medication records.

Account Access
persistence@example.test Administrator of the synthetic household
platform-admin@example.test Platform administrator, including /platform/users and the NHS dm+d importer at /admin/nhs-dmd; no household membership

These accounts are created only by the standard development/test seed on an empty application database. Existing development databases are not updated by this change; do not reset a populated database to obtain the new account.

Start the application

Set DATABASE_URL to your restricted runtime connection, then run:

task build
task dev

task dev prepares the frontend assets and starts Loco in development mode. Use the address printed by the server. Development configuration is in config/development.yaml; production settings and secrets require the separate deployment guide.

If background processing is needed, run task worker in another terminal. That Task also starts a scheduler; do not start task scheduler alongside it.

Check changes

Use task test:unit for database-free checks, task test:integration for API and database behaviour, and task test:browser for Rust Playwright journeys. task ci runs the application checks. See the testing guide for isolated databases, focused filters and screenshots.

Troubleshooting

Check the server output, database connection and installed tools first. Do not reset a populated database as a troubleshooting step. Create a separate empty development database when you need a fresh fixture environment.