eadfbeab35
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
64 lines
2.6 KiB
Markdown
64 lines
2.6 KiB
Markdown
# 2026-04-12 — Initial project scaffold
|
|
|
|
**Timestamp:** 2026-04-12T14:22:00
|
|
|
|
## Summary
|
|
|
|
Created the initial fullstack SaaS project structure from scratch.
|
|
|
|
## Files Added
|
|
|
|
### Backend
|
|
- `backend/pyproject.toml` — project dependencies (FastAPI, SQLAlchemy, Alembic, pydantic-settings, python-jose, passlib)
|
|
- `backend/alembic.ini` — Alembic configuration
|
|
- `backend/alembic/env.py` — async Alembic migration environment
|
|
- `backend/alembic/script.py.mako` — migration file template
|
|
- `backend/app/__init__.py`
|
|
- `backend/app/main.py` — FastAPI app, CORS middleware, router mounts
|
|
- `backend/app/database.py` — async SQLAlchemy engine, session factory, `Base`
|
|
- `backend/app/deps.py` — `get_current_user` FastAPI dependency (JWT validation)
|
|
- `backend/app/core/__init__.py`
|
|
- `backend/app/core/config.py` — `Settings` via pydantic-settings, reads `.env`
|
|
- `backend/app/core/security.py` — bcrypt password hashing, JWT encode/decode
|
|
- `backend/app/models/__init__.py`
|
|
- `backend/app/models/user.py` — `User` ORM model (id, email, hashed_password, full_name, is_active, is_superuser)
|
|
- `backend/app/schemas/__init__.py`
|
|
- `backend/app/schemas/user.py` — `UserCreate`, `UserOut`, `Token` Pydantic schemas
|
|
- `backend/app/routers/__init__.py`
|
|
- `backend/app/routers/auth.py` — `POST /api/auth/register`, `POST /api/auth/login`
|
|
- `backend/app/routers/users.py` — `GET /api/users/me`
|
|
|
|
### Frontend
|
|
- `frontend/package.json` — dependencies (React 18, TypeScript, Vite, React Router v6, TanStack Query, Axios)
|
|
- `frontend/vite.config.ts` — Vite config, `/api` proxy to `:8000`
|
|
- `frontend/tsconfig.json` — strict TypeScript config
|
|
- `frontend/index.html`
|
|
- `frontend/src/main.tsx` — React root, QueryClientProvider, BrowserRouter
|
|
- `frontend/src/App.tsx` — route tree, `PrivateRoute` guard
|
|
- `frontend/src/api/client.ts` — Axios instance, auth interceptor, `login`, `register`, `getMe`
|
|
- `frontend/src/hooks/useAuth.ts` — JWT token state, `login`, `logout`
|
|
- `frontend/src/pages/LoginPage.tsx`
|
|
- `frontend/src/pages/RegisterPage.tsx`
|
|
- `frontend/src/pages/DashboardPage.tsx`
|
|
|
|
### Root
|
|
- `docker-compose.yml` — postgres, backend, frontend services
|
|
- `.env.example`
|
|
- `.gitignore`
|
|
- `CLAUDE.md`
|
|
|
|
---
|
|
|
|
# 2026-04-12 — Added README and changelog
|
|
|
|
**Timestamp:** 2026-04-12T14:45:00
|
|
|
|
## Summary
|
|
|
|
Added project README with overview and installation guide. Created `changelog/` directory and this initial entry.
|
|
|
|
## Files Added
|
|
|
|
- `README.md` — project overview, stack table, current state, Option A (Docker) and Option B (local) install guides, env variable reference, dev commands
|
|
- `changelog/2026-04-12_initial-scaffold.md` — this file
|