Initial commit
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# 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
|
||||
|
||||
- [Docker](https://docs.docker.com/get-docker/)
|
||||
- [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
*Note: If building on an x86 machine for ARM64 (Raspberry Pi), ensure you use `docker buildx`.*
|
||||
|
||||
### Running with Docker Compose
|
||||
|
||||
1. Clone the repository.
|
||||
2. Navigate to the project root.
|
||||
3. Run the following command:
|
||||
|
||||
```bash
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
The application will be available at:
|
||||
- **Frontend**: [http://localhost](http://localhost)
|
||||
- **Backend API**: [http://localhost:8000](http://localhost:8000)
|
||||
|
||||
### Development Setup
|
||||
|
||||
#### Backend
|
||||
|
||||
Requires `uv` and Python 3.14+.
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
uv sync
|
||||
uv run uvicorn app.main:app --reload
|
||||
```
|
||||
|
||||
Run tests:
|
||||
```bash
|
||||
uv run pytest
|
||||
```
|
||||
|
||||
#### Frontend
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Run tests:
|
||||
```bash
|
||||
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.
|
||||
Reference in New Issue
Block a user