main
Baby Sleep Tracker
A self-hosted web application for tracking infant sleep sessions, optimized for Raspberry Pi 4 (ARM64).
Features
- Tracker Tab: Start and stop sleep sessions with a single click. Adjust start/end times easily.
- Stats Tab: Visualize sleep patterns with daily summaries (day vs. night), continuous time-slot grids, and wakeup/bedtime trend plots.
- Responsive Design: Built for mobile use via a clean, thumb-friendly UI.
- Dockerized: Easy deployment using Docker Compose.
Tech Stack
- Frontend: React 19, Vite 6, TypeScript, Tailwind CSS v4, Recharts, TanStack Query.
- Backend: Python 3.12+, FastAPI, SQLModel (SQLAlchemy + P/Dantic), SQLite.
- Deployment: Docker, Docker Compose.
Getting Started
Prerequisites
Note: If building on an x86 machine for ARM64 (Raspberry Pi), ensure you use docker buildx.
Running with Docker Compose
- Clone the repository.
- Navigate to the project root.
- Run the following command:
docker compose up --build
The application will be available at:
- Frontend: http://localhost
- Backend API: http://localhost:8000
Development Setup
Backend
Requires uv and Python 3.14+.
cd backend
uv sync
uv run uvicorn app.main:app --reload
Run tests:
uv run pytest
Frontend
cd frontend
npm install
npm run dev
Run tests:
npm run test
Project Structure
backend/: FastAPI application, models, and API routes.frontend/: React application with components and hooks.docker-compose.yml: Orchestration for the full stack.
Description
Languages
TypeScript
74.2%
Python
24.8%
Dockerfile
0.6%
JavaScript
0.3%
HTML
0.1%