Some checks failed
Deploy / deploy (push) Failing after 6m11s
- 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
186 lines
4.2 KiB
Markdown
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
|