- Add Gitea Actions workflow for automated frontend and API deployment
- Update all raw download URLs from GitHub to Gitea
- Remove deprecated Amplify config and GitHub-specific Terraform variables
- Clean up commented-out Amplify resources from Terraform
- Update documentation to reflect new repository and CI/CD setup
- Fix FilamentForm to preserve prices when updating quantities
- Add isInitialLoad flag to prevent price override on form load
- Only update prices when color is actively changed, not on initial render
- Add bulk filament price editor to dashboard
- Filter by material and finish
- Set refill and/or spool prices for multiple filaments
- Preview changes before applying
- Update all filtered filaments at once
- Add bulk color price editor to colors page
- Edit prices for all colors in one interface
- Global price application with search filtering
- Individual price editing with change tracking
- Add auto-kill script for dev server
- Kill existing processes on ports 3000/3001 before starting
- Prevent "port already in use" errors
- Clean start every time npm run dev is executed
Update deployment script to set appropriate cache-control headers:
- HTML files: no-cache to prevent stale content
- Next.js static assets: 1 year cache with immutable flag
- Other assets: 1 day cache for optimal performance
This resolves chronic caching issues with admin panel updates.
- Add CloudFront distribution with S3 origin
- Configure S3 bucket with website hosting
- Add Origin Access Control (OAC) for security
- Configure SPA error handling (404/403 -> index.html)
- Add Cloudflare DNS records (commented out due to invalid token)
- Add deployment script for future updates
- Update outputs to include CloudFront info
Added 16 new PLA Matte refill-only colors and 3 PLA Wood spool-only colors.
Updated admin panel to automatically handle Matte prefix and Wood finish.
Fixed sale banner not displaying due to expired sale dates.
Updated all active sales to expire in 7 days (November 7, 2025).
- Add migration to correct 14 colors that should be refill-only
- Create helper script for applying the fix
- Add frontend tracking for refill-only colors
- Update README with current project state
- Add development guidance documentation
- Created SaleCountdown component with real-time countdown
- Displays days, hours, minutes, seconds until sale ends
- Responsive design with fire emoji and urgency messaging
- Auto-calculates next Sunday at 23:59:59
- Positioned prominently above filament table
- Add database migration for sale fields (percentage, active, dates)
- Update API to handle sale operations and bulk updates
- Create SaleManager component for admin interface
- Update FilamentTableV2 to display sale prices on frontend
- Add sale column in admin dashboard
- Implement sale price calculations with strikethrough styling
- Added 30 specific PLA Basic colors with correct hex codes
- Each color has 1 refill AND 1 spool (total quantity: 2)
- Price set to 3499/3999 RSD format
- All other filaments zeroed out (won't show in table)
- Created migration script and deployment helper
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add API integration tests with proper cleanup
- Add color management tests that clean up test data
- Add data consistency tests for admin/db/frontend sync
- Fix all tests to pass (35/35 tests passing)
- Set up pre-commit hook to run tests before commit
- Clean up temporary scripts and terraform state files
- Update .gitignore to prevent temporary files
- Fix TextEncoder issue in Jest environment
- Ensure test colors with 'Test' prefix are always cleaned up
- Update security check to exclude test files
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Add empty brand field to API requests until server is updated
- Create deployment script for updating API server
- This fixes the 500 error when adding/editing filaments
- Remove Serbian color entries from schema.sql
- Add migration to delete Serbian colors from existing databases
- Add migration runner scripts for easier database updates
- Install pg package for PostgreSQL client support
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: DaX <noreply@anthropic.com>
- Remove all DynamoDB-related scripts and data files
- Remove AWS SDK dependencies from scripts
- Update environment files to remove DynamoDB/Lambda references
- Update PROJECT_STRUCTURE.md to reflect current architecture
- Clean up Terraform variables and examples
- Add PLA Matte to special pricing (3999 RSD / 3499 RSD refill)
- Make all table columns sortable
- Remove old Terraform state backups
- Remove temporary data import files
- Add support for boja_hex field from database
- Fix vakum/otvoreno detection to properly show inventory badges
- Update all filaments in database with correct hex color codes
- Remove duplicate text in material modifier badges
- Fix storage condition detection for Da/Ne values
- Exclude .claude directory from security checks
- Update security check to ignore environment variable references
- Remove tests for Lambda and DynamoDB that no longer exist
- Update tests to check for API service usage
- Fix Amplify build failure
- Import real data from PDF (35 Bambu Lab filaments)
- Remove all Confluence integration and dependencies
- Implement new V2 data structure with proper inventory tracking
- Add backwards compatibility for existing data
- Create enhanced UI components (ColorSwatch, InventoryBadge, MaterialBadge)
- Add advanced filtering with quick filters and multi-criteria search
- Organize codebase for dev/prod environments
- Update Lambda functions to support both V1/V2 formats
- Add inventory summary dashboard
- Clean up project structure and documentation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove old Confluence variables
- Add NEXT_PUBLIC_API_URL for API access
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change from server-side rendering to static export
- Fetch data at build time and save as JSON
- Remove API routes and tests, use static JSON file
- Switch back to WEB platform from WEB_COMPUTE
- Update build test for static export
- Exclude out directory from security scan
- Much simpler and more reliable approach
- Add test-build.js script to verify standalone build locally
- Add pre-commit hook with security, build, and test checks
- Copy required-server-files.json to root of standalone for Amplify
- Add husky for automatic pre-commit validation
This ensures we test builds locally before pushing
- Migrate from Vite to Next.js 15 for server-side API support
- Add dynamic API route at /api/filaments that fetches from Confluence
- Implement security measures:
- API credentials only accessible server-side
- Security scan script to detect credential leaks
- Tests to ensure no sensitive data exposure
- Build-time security checks in CI/CD
- Update AWS Amplify configuration for Next.js deployment
- Update Terraform to use WEB_COMPUTE platform for Next.js
- Add Jest tests for API security
- Remove static JSON approach in favor of dynamic API
This provides real-time data updates while keeping credentials secure on the server.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add build-time data fetching from Confluence
- Create build-data.js script to fetch and save data at build time
- Update App.tsx to use static JSON in production, API in development
- Install tsx for running TypeScript build scripts
- Configure Amplify to fetch data during build process
- Add public directory configuration to Vite
This fixes the white page error by providing data at build time instead of runtime.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>