2026-04-08 06:03:48 -04:00
|
|
|
# Robot U Site Prototype
|
|
|
|
|
|
|
|
|
|
Thin frontend layer over Forgejo for community learning content, discussions, and events.
|
|
|
|
|
|
|
|
|
|
## Stack
|
|
|
|
|
|
|
|
|
|
- FastAPI backend
|
|
|
|
|
- Preact + TypeScript frontend built with Vite
|
|
|
|
|
- `bun` for frontend tooling
|
|
|
|
|
- `uv` + `ruff` for Python checks
|
|
|
|
|
|
|
|
|
|
## Local Development
|
|
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python3 -m venv .venv
|
|
|
|
|
.venv/bin/pip install -r requirements.txt
|
|
|
|
|
.venv/bin/python -m uvicorn app:app --reload
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-08 06:14:06 -04:00
|
|
|
### Start App
|
|
|
|
|
|
|
|
|
|
Build the frontend and then serve the app from FastAPI:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./scripts/start.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The script automatically loads `.env` and `.env.local` if present.
|
|
|
|
|
|
|
|
|
|
Optional runtime overrides:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
HOST=0.0.0.0 PORT=8800 ./scripts/start.sh
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-08 06:03:48 -04:00
|
|
|
Optional live Forgejo configuration:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
export FORGEJO_BASE_URL="https://aksal.cloud"
|
|
|
|
|
export FORGEJO_TOKEN="your-forgejo-api-token"
|
|
|
|
|
export CALENDAR_FEED_URLS="webcal://example.com/calendar.ics,https://example.com/other.ics"
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-08 06:14:06 -04:00
|
|
|
Or put those values in `.env`:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-08 06:03:48 -04:00
|
|
|
### Frontend
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd frontend
|
|
|
|
|
~/.bun/bin/bun install
|
|
|
|
|
~/.bun/bin/bun run dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Quality Checks
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./scripts/check_python_quality.sh
|
|
|
|
|
./scripts/check_frontend_quality.sh
|
|
|
|
|
```
|