|
| 1 | +# Changelog |
| 2 | + |
| 3 | +## 2026-07-14 |
| 4 | + |
| 5 | +### Changed |
| 6 | + |
| 7 | +- Replaced shared global cart state with one server-side cart per HTTP session. |
| 8 | +- Rebuilt checkout around authoritative persisted product/tax data, transactional stock locking, `BigDecimal` money, immutable order lines, and persisted receipts. |
| 9 | +- Consolidated customer, order, catalog, image, and administrator route/service boundaries. |
| 10 | +- Replaced entity-bound forms with validated request DTOs and canonical role handling. |
| 11 | +- Reworked the storefront, cart drawer, checkout, authentication, and product administration UI for responsive layouts, keyboard operation, visible async states, semantic markup, and accessible labels. |
| 12 | +- Replaced usernames with normalized email addresses across registration, customer login, administrator login, persistence, bootstrap configuration, and authentication. |
| 13 | +- Matched authentication action widths, widened the storefront cart control, and redesigned administrator login/product creation as centered responsive cards with deliberate upload-area padding. |
| 14 | +- Split development and production configuration; development uses local H2 while production uses environment-provided MySQL credentials. |
| 15 | +- Added Flyway schema migrations, health endpoints, a private durable MySQL Compose service, and a reproducible non-root container image. |
| 16 | +- Upgraded Spring Boot from 3.4.1 to 3.5.16 and removed the unused Lombok dependency/configuration. |
| 17 | +- Normalized Java packages, separated request DTOs from persistence models, and added GitHub Actions test/container CI. |
| 18 | +- Replaced placeholder documentation with architecture, setup, security, routes, screenshots, environment template, and MIT licensing. |
| 19 | + |
| 20 | +### Fixed |
| 21 | + |
| 22 | +- Removed public registration privilege injection, default administrator credentials, role rewrites, CSRF bypasses, duplicate email races, and overly broad admin authorization. |
| 23 | +- Removed browser-authoritative pricing/tax/shipping, duplicate checkout creation, cross-session cart leakage, destructive schema recreation, debug logging, and committed credentials. |
| 24 | +- Removed payment-card collection from the simulated checkout flow. |
| 25 | +- Added safe decoded-image validation, generated filenames, upload size/dimension limits, and path containment. |
| 26 | +- Removed duplicate routes, dead controllers/templates/scripts, generated repository junk, and committed merge markers. |
| 27 | + |
| 28 | +### Verification |
| 29 | + |
| 30 | +- Added integration coverage for registration privilege boundaries, case-insensitive duplicate emails, email-only authentication, session cart isolation, authoritative checkout totals, stock mutation, receipt persistence, and repeated empty checkout rejection. |
| 31 | +- Exercised local H2 and containerized MySQL startup, email-based customer and administrator authentication, customer checkout, administrator image/product management, responsive layouts, health checks, and persistence across an application-container restart. |
0 commit comments