Files
Filamenteka/README.md
DaX 58c165749d
Some checks failed
Deploy / deploy (push) Failing after 6m11s
Migrate from GitHub to Gitea with CI/CD
- 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
2026-02-16 00:35:08 +01:00

186 lines
4.2 KiB
Markdown

# 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 CloudFront + S3 (Frontend), EC2 (API), RDS (Database)
- **CI/CD**: Gitea Actions
- **IaC**: Terraform
## Prerequisites
- Node.js 18+ and npm
- PostgreSQL (for local development)
- AWS Account (for deployment)
- Terraform 1.0+ (for infrastructure)
## Setup Instructions
### 1. Clone the Repository
```bash
git clone https://git.demirix.dev/DaX/Filamenteka.git
cd Filamenteka
```
### 2. Install Dependencies
```bash
npm install
```
### 3. Environment Setup
Create a `.env.local` file for local development:
```bash
NEXT_PUBLIC_API_URL=http://localhost:4000/api
```
### 4. Deploy with Terraform
```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
terraform init
terraform plan
terraform apply
```
## Local Development
```bash
# 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
- **Kolicina** - 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
Pushing to `main` triggers automatic deployment via Gitea Actions:
- Frontend changes are built, tested, and deployed to S3/CloudFront
- API changes are deployed to EC2 via AWS SSM
Manual deployment is also available:
```bash
# Frontend
./scripts/deploy-frontend.sh
# API
./scripts/deploy-api-update.sh
```
## 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:
1. **Admin Panel**: Navigate to `/upadaj/colors` to add colors via UI
2. **Code**: Edit `src/data/bambuLabColors.ts` for frontend color display:
```typescript
export const bambuLabColors: Record<string, ColorMapping> = {
// ... existing colors
'New Color Name': { hex: '#HEXCODE' },
};
```
## Database Migrations
Run database migrations:
```bash
# Run all pending migrations
npm run migrate
# Clear migration history (development only)
npm run migrate:clear
```
## API Deployment
Deploy API server updates:
```bash
# Use the deployment script
./scripts/deploy-api-update.sh
```
## Troubleshooting
### Color Not Showing
- Check if the color name matches exactly in the database
- Ensure color exists in `colors` table
- Add the color mapping to `bambuLabColors.ts`
- Colors are case-insensitive but spelling must match
### Build Errors
- Run `npm run test:build` to 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