Format
Problem → Cause → Fix → Lesson
§ Technical Log / Engineering Notes
This log documents what broke, why it happened, how I fixed it, and what I learned while building practical backend, full-stack, DevOps, and frontend projects.
Format
Problem → Cause → Fix → Lesson
Focus
Backend · CI/CD · Docker · TypeScript · PostgreSQL
Purpose
To show how I debug, document, and improve real projects.
Note 01
PinnedInventory Management System · 2026-07-26
Diagnosed and resolved an analytics issue where dashboard totals were calculated from a paginated ten-item response instead of the full PostgreSQL inventory.
Category: Full-Stack / React / FastAPI / PostgreSQL
As new products were added, the inventory table updated correctly, but the dashboard continued to report totals for only ten items. Product count, quantity, inventory value, and stock-status metrics were therefore inaccurate.
The React frontend calculated global dashboard metrics directly from the /items response. That endpoint intentionally returns a paginated dataset with a default limit of ten records, while the backend aggregation endpoints already calculated statistics across the full database.
Separated paginated inventory data from reporting data. The inventory preview continued using /items, while dashboard KPIs and category analytics were connected to /items/stats, /items/category-summary, and /items/category-value. Added dedicated React state and refreshed aggregate data after create, update, and delete operations.
Paginated operational data should not be reused for global analytics. When frontend totals do not match database records, trace the complete data flow and verify which endpoint supplies each part of the interface.
Note 02
PinnedBloom · 2026-07-13
Diagnosed and resolved a routine persistence issue where authenticated users were unknowingly using localStorage instead of the backend API.
Category: Full-Stack / React / FastAPI / PostgreSQL
Routines created on the Routines page did not appear on Home or Progress, and authenticated users were not persisting routine changes to PostgreSQL.
Routines.jsx imported backend CRUD functions but never called them. The page always used localStorage regardless of authentication state, creating two separate data sources.
Implemented backend CRUD flows for authenticated users, preserved localStorage behaviour for demo users, added cross-page synchronisation events, and connected routine operations to FastAPI.
When multiple features fail together, trace the complete data flow before fixing individual symptoms. Often a single architectural issue is responsible for several visible bugs.
Note 03
AI HR Support Assistant · 2026-07-05
GitHub Actions caught hidden TypeScript issues involving JSX/TSX imports, named/default exports, and inconsistent component props.
Category: Frontend / TypeScript / CI/CD
Frontend CI failed during the production build even though the app had worked during development.
Dashboard components used inconsistent import/export styles and different prop names for the same stat card component.
Created a typed AdminStatCard component, updated StatCard exports, and allowed StatCard to accept either title or label props.
CI/CD can catch hidden frontend type issues before deployment. Reusable TypeScript components need consistent imports, exports, and props.
Note 04
PinnedPortfolio Website · 2026-07-05
Fixed a local Astro build hang by clearing stale processes and disabling Astro telemetry during builds.
Category: Frontend / Astro / Build Tools
The Astro build appeared to stick before producing normal build output.
The issue was likely caused by stale Astro/Vite/Node processes, cache state, or telemetry hanging before the build output.
Stopped old processes, cleared build cache, and updated the build command to disable Astro telemetry.
Build issues are not always code errors. Sometimes the local tooling environment needs to be reset.
Note 05
AI HR Support Assistant · 2026-06-28
Cleaned up the backend testing checkpoint until the AI HR Support Assistant test suite passed successfully.
Category: Backend / FastAPI / Pytest
The backend needed a stable testing checkpoint before larger features like authentication, role-based access, and CI/CD.
The app was becoming more realistic, with FastAPI routes, PostgreSQL logic, SQLAlchemy models, schemas, and ticket workflows.
Validated the backend test setup until the suite reached 11 passing tests.
Backend tests make a project stronger because they confirm the API works beyond manual testing.