Systems / Archived service
Personal Website Backend
The original FastAPI and SQLAlchemy content service, retained as a project after the website migrated to static JSON, prerendered pages, and direct email contact.
View repository01 / COMPONENTS & DATA FLOW
Inside the system.
- 01FastAPI routes
- 02SQLAlchemy sessions
- 03Azure SQL models
- 04JSON API responses
Content routes
FastAPI routers separate portfolio items, blog posts, and contact submissions. Models represent each of those content types.
SQL persistence
SQLAlchemy sessions use the mssql+pyodbc dialect and an ODBC SQL Server driver to access Azure SQL. Contact records include creation time and email-sent state.
Completed frontend migration
The current website reads profile and journal JSON from its repository, generates static article and project pages, and uses email links for contact. It no longer calls this service.
02 / IMPLEMENTATION DECISIONS
Why it works this way.
Static content removes a runtime dependency
Content changes now travel through Git review and the existing build/deploy workflow. The live site stays readable when the original API is unavailable.
Retirement preserves records
The website’s 30 journals and original public project records were exported before database access was disabled. Existing private contact records remain in the retained database.
03 / SCOPE & TRADEOFFS
The implementation boundary.
An archived API, not the current website’s backend. Its database network access is disabled; the database remains retained rather than deleted.
04 / READ THE IMPLEMENTATION