56a21b27fe763cf68fe388564c8b15074aedc328
Add three new filament colors to support Wood and Matte finishes: - Classic Birch (PLA Wood) - #E8D5B7 - Rosewood (PLA Wood) - #472A22 - Desert Tan (PLA Matte) - #E8DBB7 Update CLAUDE.md with improved documentation: - Enhanced architecture details - Added color requests schema - Expanded deployment and database sections - Added testing and security details
Filamenteka
A web application for tracking Bambu Lab filament inventory with automatic color coding.
Features
- 🎨 Automatic Color Coding - Table rows are automatically colored based on filament colors
- 🔍 Search & Filter - Quick search across all filament properties
- 📊 Sortable Columns - Click headers to sort by any column
- 🌈 Gradient Support - Special handling for gradient filaments like Cotton Candy Cloud
- 📱 Responsive Design - Works on desktop and mobile devices
- 💰 Sale Management - Bulk sale pricing with countdown timers
- 🔐 Admin Panel - Protected dashboard for inventory management
- 📦 Spool Types - Support for both regular and refill spools
Technology Stack
- Frontend: Next.js + React + TypeScript + Tailwind CSS
- Backend: Node.js API server (Express)
- Database: PostgreSQL (AWS RDS)
- Infrastructure: AWS Amplify (Frontend), EC2 (API), RDS (Database)
- IaC: Terraform
Prerequisites
- Node.js 18+ and npm
- PostgreSQL (for local development)
- AWS Account (for deployment)
- Terraform 1.0+ (for infrastructure)
- GitHub account
Setup Instructions
1. Clone the Repository
git clone https://github.com/yourusername/filamenteka.git
cd filamenteka
2. Install Dependencies
npm install
3. Environment Setup
Create a .env.local file for local development:
NEXT_PUBLIC_API_URL=http://localhost:4000/api
4. Deploy with Terraform
cd terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
terraform init
terraform plan
terraform apply
Local Development
# Run development server
npm run dev
# Run tests
npm test
# Run linting
npm run lint
# Check for security issues
npm run security:check
Visit http://localhost:3000 to see the app.
Table Format
The filament table displays these columns:
- Tip - Material type (e.g., PLA, PETG, ABS)
- Finish - Finish type (e.g., Basic, Matte, Silk)
- Boja - Color name (e.g., Mistletoe Green, Hot Pink)
- Refill - Number of refill spools
- Spulna - Number of regular spools
- Količina - Total quantity (refill + spulna)
- Cena - Price per unit
- Sale - Active sale percentage and end date
Color Mapping
The app includes mappings for common Bambu Lab colors:
- Basic colors: Red, Blue, Green, Yellow, etc.
- Special colors: Mistletoe Green, Indigo Purple, Hot Pink, etc.
- Gradient filaments: Cotton Candy Cloud
- Matte finishes: Scarlet Red, Marine Blue, etc.
Unknown colors default to light gray.
Deployment
Push to the main branch to trigger automatic deployment:
git add .
git commit -m "Update filament colors"
git push origin main
Amplify will automatically build and deploy your changes.
Admin Panel
Access the admin panel at /upadaj for:
- Managing filament inventory
- Adding/editing/deleting filaments
- Managing color definitions and pricing
- Bulk sale management
Adding New Colors
Colors can be managed through:
- Admin Panel: Navigate to
/upadaj/colorsto add colors via UI - Code: Edit
src/data/bambuLabColors.tsfor frontend color display:
export const bambuLabColors: Record<string, ColorMapping> = {
// ... existing colors
'New Color Name': { hex: '#HEXCODE' },
};
Database Migrations
Run database migrations:
# Run all pending migrations
npm run migrate
# Clear migration history (development only)
npm run migrate:clear
API Deployment
Deploy API server updates:
# Use the deployment script
./scripts/deploy-api.sh
# Or deploy manually to EC2 instance
Troubleshooting
Color Not Showing
- Check if the color name matches exactly in the database
- Ensure color exists in
colorstable - Add the color mapping to
bambuLabColors.ts - Colors are case-insensitive but spelling must match
Build Errors
- Run
npm run test:buildto verify build succeeds - Check TypeScript errors with
npx tsc --noEmit - Ensure all environment variables are set
Database Connection Issues
- Verify PostgreSQL is running
- Check connection string in environment variables
- Ensure database migrations have been run
License
MIT
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Description
Languages
TypeScript
76.8%
JavaScript
11.4%
HCL
4.7%
Shell
3.7%
PLpgSQL
2.3%
Other
1.1%