This repository contains a full-stack biography and project showcase application, implemented with a Nuxt frontend and a FastAPI backend.
| Layer | Technology | Notes |
|---|---|---|
| Frontend | Nuxt 4 + Vue 3 + TypeScript | SSR/SSG-ready UI, composables, file-based routes |
| Content | TinaCMS + Nuxt Content | Git-backed content editing workflow |
| State | Pinia | Centralized frontend state (language stats and UI data) |
| Styling | Sass | Modular style architecture |
| Backend | FastAPI + Uvicorn | Async Python API for repository, health, and announcements |
| Data | SQLAlchemy + asyncpg | PostgreSQL-oriented backend data layer |
frontend/: Nuxt application, content, Tina config, and UI componentsbackend/: FastAPI app, services, models, database configuration, and testsdocs/: Top-level architecture docsdocker-compose.yml: Local multi-service orchestration
- Docker and Docker Compose
- Node.js (LTS recommended)
- Python 3.14+
From the repository root, run the entire stack:
docker compose up --build- Navigate to
backend/. - Create and activate a virtual environment:
python -m venv venv && source venv/bin/activate. - Install dependencies:
pip install -r requirements.txt. - Run the server:
uvicorn app:app --reload.
- Navigate to
frontend/. - Install dependencies:
npm install. - Run the development server:
npm run dev. - Clean build artifacts:
npm run clean.
Default ports:
- Frontend:
http://localhost:3002 - Backend:
http://localhost:8080
- Top-level architecture: docs/architecture.md
- Architecture Documentation index: docs/architecture-documentation.md
- Frontend architecture: frontend/docs/architecture.md
- Backend architecture: backend/docs/architecture.md
Project release history is tracked in CHANGELOG.md.