2026-05-13 19:30:27 +00:00
2026-05-11 21:39:00 +02:00
2025-12-19 13:09:53 +01:00
2025-12-19 13:09:53 +01:00

MedAssist-ng Logo

MedAssist-ng

Never run out of your medications again.
A medication tracking and planning app with stock monitoring, intake schedules, and reminder notifications.

React 19 TypeScript Fastify SQLite Docker

Backend Tests 454/454 Frontend Tests 611/611

🤖 AI-Generated Code

This app was 100% coded with Claude Opus 4.6 and GPT-5.3 Codex. Use at your own risk.

⚠️ Disclaimer

Your health is your responsibility. This app may contain bugs. Follow your doctor's instructions closely, keep track of your medication supply, and plan ahead for reordering.

Think of this app as a helpful tool, but make all health decisions independently!

Features

MedAssist-ng Dashboard

Screenshots
Dashboard

Overview with stock status, reorder reminders, and upcoming schedules.

Dashboard
Medication Detail

View medication details, stock information, and intake schedule.

Medication Detail Modal
Medications & Edit Form

Manage your medications with the edit form and refill feature.

Medications Edit Form
Demand Calculator (Planner)

Calculate how many pills you need for a specific date range.

Planner - Demand Calculator
Shared Schedule

Share your medication schedule with others via a public link.

Shared Schedule
Mobile Views
Dashboard
Mobile Dashboard
Medications
Mobile Medications
Schedule
Mobile Schedule

Medication Setup

  • Optional medication lookup in the editor on desktop and mobile
  • Supports RxNorm, openFDA, and EMA with source labels
  • Review-and-apply flow with package-size suggestions when available
  • Manual entry remains available

Smart Inventory

  • Track exact stock with package profiles (blister, bottle, tube, liquid container, inhaler, injection)
  • Display remaining days of supply
  • Automatic calculation based on intake schedule
  • Manual stock correction supports profile-specific stock semantics (sealed units + loose stock for blister, discrete capacity/current stock for bottle, inhaler, and injection, amount-based stock for tube and liquid container)

Medication Refill

  • One-click refill with package-aware refill options for discrete containers and amount-based packages
  • Complete refill history per medication
  • Automatic stock updates after each refill

Flexible Schedules

  • Daily, weekly, or custom intervals per medication
  • Independent schedules for each medication
  • Optional timeline filters for dashboard and shared schedule views

Stock Alerts & Reminders

  • Notifications before stock runs out
  • Configurable warning thresholds
  • Intake reminders via push notifications

Trip Planner

  • Calculate medication demand for a trip or date range with package-aware units
  • Send demand reports via email or push notification

Reports

  • Generate medication reports as PDF, Markdown, or plain text
  • Include intake history, refill history, and prescription details

Multi-Person Support

  • Manage medications for multiple people
  • Share schedules via link. Recipients can mark doses as taken, you see it live
  • Optionally embed the medication overview directly on shared links via a settings toggle

Data Export & Import

  • Export all your data (medications, dose history, settings) as JSON
  • Import previously exported data with automatic ID remapping
  • Choose whether to include sensitive data in exports

Notifications

  • Email via SMTP
  • Push notifications via ntfy, Pushover, Gotify, Telegram, Discord & more (Shoutrrr)
  • Supports stock warnings and intake reminders

Privacy & Security

  • Fully self-hosted
  • SSO via OIDC (Authelia, Authentik, Pocket ID, Keycloak)
  • Non-root containers
  • Dark mode included 😎

Getting Started

The easiest way to deploy MedAssist-ng is with Docker Compose:

git clone https://github.com/DanielVolz/medassist-ng.git
cd medassist-ng
cp .env.example .env
docker compose -p medassist-ng up -d

Open http://localhost:4174 and start tracking your medications.

Configuration

Configure the application with environment variables in .env. Keep the basic container settings in the README and use the dedicated docs for the full reference.

Initial Configuration

Variable Default Description
PUID 1000 User ID for container file permissions
PGID 1000 Group ID for container file permissions
PORT 3000 Backend API port
CORS_ORIGINS http://localhost:4174 Allowed frontend origins
TZ Europe/Berlin Default timezone for reminders

Optional but commonly needed:

Variable Default Description
PUBLIC_APP_URL Public base URL for notification action links

Detailed configuration references:

Development

Development setup and local commands are documented in docs/DEVELOPMENT.md.

Acknowledgements

This project was inspired by MedAssist by njic.

Languages
TypeScript 94.4%
CSS 5.4%
Dockerfile 0.1%