FastAPI backend for personal health and skincare data with MCP export. Includes SQLModel models for products, inventory, medications, lab results, routines, and skin condition snapshots. Pytest suite with 111 tests running on SQLite in-memory (no PostgreSQL required). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
62 lines
1.5 KiB
Markdown
62 lines
1.5 KiB
Markdown
# innercontext
|
|
|
|
Personal health and skincare data hub. Collects structured data (products, routines, lab results, medications, skin snapshots) and exposes it via a REST API and MCP to an LLM agent.
|
|
|
|
## Repository layout
|
|
|
|
```
|
|
backend/ Python backend — FastAPI REST API + SQLModel models
|
|
```
|
|
|
|
A frontend will be added in the future.
|
|
|
|
## Backend quick start
|
|
|
|
**Requirements:** Python 3.12+, PostgreSQL, [uv](https://docs.astral.sh/uv/)
|
|
|
|
```bash
|
|
cd backend
|
|
|
|
# Install dependencies
|
|
uv sync
|
|
|
|
# Set database URL (defaults to postgresql+psycopg://localhost/innercontext)
|
|
export DATABASE_URL=postgresql+psycopg://user:password@localhost/innercontext
|
|
|
|
# Start the API server (creates tables on first run)
|
|
uv run uvicorn main:app --reload
|
|
```
|
|
|
|
API docs available at `http://localhost:8000/docs`.
|
|
|
|
## API overview
|
|
|
|
| Prefix | Resource |
|
|
|---|---|
|
|
| `/products` | Skincare / medication products + inventory |
|
|
| `/inventory` | Individual inventory entries |
|
|
| `/health/medications` | Medication entries and usage history |
|
|
| `/health/lab-results` | Lab test results |
|
|
| `/routines` | AM/PM skincare routines and steps |
|
|
| `/routines/grooming-schedule` | Weekly grooming schedule |
|
|
| `/skin-snapshots` | Weekly skin condition snapshots |
|
|
| `/health-check` | Liveness probe |
|
|
|
|
## Development
|
|
|
|
```bash
|
|
cd backend
|
|
|
|
# Lint
|
|
uv run ruff check .
|
|
|
|
# Format
|
|
uv run black .
|
|
uv run isort .
|
|
```
|
|
|
|
## Stack
|
|
|
|
- **Runtime:** Python 3.12, FastAPI, Uvicorn
|
|
- **ORM:** SQLModel 0.0.37 + SQLAlchemy, Pydantic v2
|
|
- **Database:** PostgreSQL (psycopg3)
|