Commit Graph

2 Commits

Author SHA1 Message Date
eccaf8a60d Complete Phase 4: Polish, Docker, CI/CD, and deployment readiness
- Fix responsive issues: Card/detail panel use p-4 md:p-8, larger
  progress dots, tighter mobile gaps in Contact section
- Fix lint errors: remove unused vars in BentoCard, AnimatedSection;
  fix explicit-any in ExpandableServiceCard test
- Fix zod-validation-error v4 dependency for eslint-plugin-react-hooks
- Add type-check script to package.json
- Create multi-stage Dockerfile (node:20-alpine build, nginx:alpine serve)
- Create .dockerignore to exclude dev files from build context
- Create nginx.conf with SPA routing, gzip, caching, security headers
- Update docker-compose.yml: build context replaces volume mount,
  preserve Traefik labels, add healthcheck
- Rewrite CI/CD pipeline: Node.js setup, npm ci, type-check, lint,
  test, build, rsync + docker compose build on server
- Add AI-generated images for all placeholder locations
- Archive original index.html as index.html.original

All checks pass: tsc --noEmit, eslint, 222/222 tests, vite build

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:27:30 -07:00
c915a3cd66 Complete Phase 1: React modernization foundation
- Initialize Vite + React 19 + TypeScript project
- Configure Tailwind CSS v4 with design tokens
- Add Button component (13 tests)
- Add Card component (11 tests)
- Add Container component (9 tests)
- Add Header component with glassmorphism (17 tests)
- Add Footer component (13 tests)
- Add MobileNav with slide-out menu (19 tests)
- Update App.tsx with layout preview

82 tests passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 01:27:12 -07:00