-
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
# Neon Health Tracker
|
||||
# Neon Medical Tracker
|
||||
|
||||
A dependency-free PHP, HTML5, JavaScript, and SQLite tracker for workouts, nutrition, supplements, and body metrics.
|
||||
A dependency-free PHP, HTML5, JavaScript, and SQLite web app for multi-user medical tracking, searchable medical reference data, medication catalog lookup, terminology, symptoms, conditions, NIH/NLM study links, and admin-managed profiles.
|
||||
|
||||
This app is a personal tracking and reference tool. It is not medical advice, diagnosis, treatment guidance, emergency guidance, or a substitute for a clinician or pharmacist.
|
||||
|
||||
## Run
|
||||
|
||||
```sh
|
||||
frankenphp php-server --root public --listen 127.0.0.1:8080
|
||||
/Users/tyemeclifford/frankenphp php-server --root public --listen 127.0.0.1:8080
|
||||
```
|
||||
|
||||
Then open:
|
||||
@@ -16,15 +18,21 @@ http://127.0.0.1:8080
|
||||
|
||||
## Public Routes
|
||||
|
||||
- `/` - public homepage for the service.
|
||||
- `/workouts.php` - workout planning feature page.
|
||||
- `/nutrition.php` - nutrition tracking feature page.
|
||||
- `/recovery.php` - recovery, supplements, and health monitoring feature page.
|
||||
- `/signup.php` - public profile signup.
|
||||
- `/tracker.php` - the workout, nutrition, supplement, and health dashboard.
|
||||
- `/admin.php` - admin user-management dashboard.
|
||||
- `/` - medical reference hub with search, database totals, and links to tracker/admin tools.
|
||||
- `/nutrition.php` - searchable medicine catalog.
|
||||
- `/medicine.php?id=46` - dynamic medicine detail page backed by SQLite.
|
||||
- `/symptoms.php` - searchable symptom reference database.
|
||||
- `/symptom.php?id=24` - dynamic symptom detail page backed by SQLite.
|
||||
- `/workouts.php` - searchable condition reference database.
|
||||
- `/condition.php?id=2` - dynamic condition detail page backed by SQLite.
|
||||
- `/medical.php` - combined search for symptoms, terminology, conditions, medicines, and study links.
|
||||
- `/term.php?id=1` - dynamic medical terminology detail page backed by SQLite.
|
||||
- `/recovery.php` - NIH/NLM research and study-link categories.
|
||||
- `/tracker.php` - profile-scoped medical tracker dashboard.
|
||||
- `/admin.php` - admin user-management dashboard and medicine-source updater.
|
||||
- `/signup.php` - legacy route that redirects to `/tracker.php`; public signup has been removed.
|
||||
|
||||
## Storage
|
||||
## Current Data
|
||||
|
||||
SQLite is created automatically at:
|
||||
|
||||
@@ -32,23 +40,77 @@ SQLite is created automatically at:
|
||||
data/health_tracker.sqlite
|
||||
```
|
||||
|
||||
The app seeds two sample profiles, built-in exercise movements, common gym supplements, starter routines, planner entries, nutrition logs, supplement logs, and body metrics.
|
||||
The current SQLite snapshot includes:
|
||||
|
||||
- 6,002 medicine catalog records.
|
||||
- 242 symptom reference records.
|
||||
- 203 condition reference records.
|
||||
- 23 medical terminology records.
|
||||
- 9 NIH/NLM research-link categories.
|
||||
|
||||
The database also stores user profiles, medication logs, vitals, lab results, symptom logs, allergies, appointments, immunizations, optional legacy workout/nutrition/supplement data, theme preferences, and admin state.
|
||||
|
||||
## Included
|
||||
|
||||
- Multi-user profiles with separate routines, logs, goals, and theme preferences.
|
||||
- Admin dashboard for creating, editing, activating/deactivating, and deleting user profiles.
|
||||
- First user created in a database is automatically promoted to `admin`; later users default to `member`.
|
||||
- Daily, weekly, and monthly workout planner views.
|
||||
- Routine planning for weight lifting, cycling, running, swimming, conditioning, mobility, core, outdoor, and hybrid programs.
|
||||
- Configurable exercise and supplement libraries.
|
||||
- Nutrition goals scoped by day, week, or month, compared against actual logs.
|
||||
- Supplement tracking for pre-workout, intra-workout, post-workout, daily, and evening use.
|
||||
- Health metrics for weight, body fat, sleep, resting heart rate, mood, and notes.
|
||||
- Multi-user profiles with separate medical records and theme preferences.
|
||||
- First user in a database is automatically promoted to `admin`; later users default to `member`.
|
||||
- Admin dashboard for creating, editing, activating/deactivating, and deleting profiles.
|
||||
- Admin medicine-source updater for refreshing catalog data from RxNorm, DailyMed, and openFDA.
|
||||
- Profile-scoped tracker for medication logs, vitals, lab results, symptoms, allergies, appointments, immunizations, notes, and older wellness data.
|
||||
- Searchable medicine catalog by generic name, active ingredient, chemical name, common brand names, generic/alternate names, class, family, and source terms.
|
||||
- Dynamic medicine pages with active ingredient, chemical name, brand names, tracking notes, RxNorm, DailyMed, PubChem, MedlinePlus, PubMed, and ClinicalTrials.gov links.
|
||||
- Searchable symptom database with body-system categories, tracking notes, urgency-context notes, MedlinePlus links, and dynamic detail pages.
|
||||
- Searchable condition database with category summaries, tracking notes, MedlinePlus links, and dynamic detail pages.
|
||||
- Medical terminology database with plain-language definitions, clinical context, source links, and dynamic detail pages.
|
||||
- Combined medical library search across symptoms, conditions, terminology, medicines, and research links.
|
||||
- NIH/NLM study-link categories related to listed medicines and conditions.
|
||||
- Neon dark theme by default, light mode option, and green, blue, red, pink, and orange accents.
|
||||
|
||||
## Photo Credits
|
||||
## Medicine Catalog Updates
|
||||
|
||||
- `Jogging Woman in Grass` by Mike Baird, CC BY 2.0.
|
||||
- `Cycling in Amsterdam (893)` by FaceMePLS, CC BY-SA 2.0.
|
||||
- `A large mixed salad` by Jmabel, CC BY-SA 4.0.
|
||||
The medicine catalog ships with a curated starter set and the current SQLite snapshot includes thousands of imported medicine concepts. It can be refreshed from public sources.
|
||||
|
||||
From the admin dashboard, use the medicine source updater and choose `All sources`, `RxNorm`, `DailyMed`, or `openFDA`.
|
||||
|
||||
From the command line:
|
||||
|
||||
```sh
|
||||
/Users/tyemeclifford/frankenphp php-cli scripts/update_medicine_catalog.php 1000 all
|
||||
```
|
||||
|
||||
For periodic maintenance, run the same command nightly or weekly. The first argument is the max rows per source, from `25` to `5000`; the second argument is `all`, `RxNorm`, `DailyMed`, or `openFDA`.
|
||||
|
||||
## API
|
||||
|
||||
Main API endpoint:
|
||||
|
||||
```text
|
||||
public/api.php
|
||||
```
|
||||
|
||||
Useful actions:
|
||||
|
||||
- `GET api.php?action=state` - tracker/admin state payload.
|
||||
- `GET api.php?action=library_search&q=chest&limit=20` - combined reference search.
|
||||
- `POST api.php?action=create_user` - create a user profile from admin/tracker tools.
|
||||
- `POST api.php?action=update_user` - update a user profile.
|
||||
- `POST api.php?action=delete_user` - delete a user profile.
|
||||
- `POST api.php?action=refresh_medication_sources` - refresh the medicine catalog from configured public sources.
|
||||
|
||||
The old `public_signup` action has been removed.
|
||||
|
||||
## Reference Sources
|
||||
|
||||
- MedlinePlus health topics, symptoms, conditions, labs, and drug information: `https://medlineplus.gov/`
|
||||
- RxNorm and RxNav from the U.S. National Library of Medicine: `https://www.nlm.nih.gov/research/umls/rxnorm/index.html`
|
||||
- DailyMed label search from the U.S. National Library of Medicine: `https://dailymed.nlm.nih.gov/dailymed/`
|
||||
- PubChem chemical and compound search from NCBI: `https://pubchem.ncbi.nlm.nih.gov/`
|
||||
- PubMed research search: `https://pubmed.ncbi.nlm.nih.gov/`
|
||||
- ClinicalTrials.gov study search: `https://clinicaltrials.gov/`
|
||||
- openFDA drug label data: `https://open.fda.gov/apis/drug/label/`
|
||||
|
||||
## Notes
|
||||
|
||||
- This project intentionally avoids a public signup funnel. Profiles are managed through `/admin.php` and `/tracker.php`.
|
||||
- Dynamic detail pages use shared PHP endpoints and pull records from SQLite; individual medicine, symptom, condition, and term pages do not need to exist as separate files.
|
||||
- Legacy workout, nutrition, and supplement tracker data remains in the schema as wellness context, but the public app focus is now medical tracking and reference lookup.
|
||||
|
||||
Reference in New Issue
Block a user