- React + TypeScript frontend with automatic color coding - Confluence API integration for data sync - AWS Amplify deployment with Terraform - Support for all Bambu Lab filament colors including gradients
156 lines
3.8 KiB
Markdown
156 lines
3.8 KiB
Markdown
# Filamenteka
|
|
|
|
A web application for tracking Bambu Lab filament inventory with automatic color coding, synced from Confluence documentation.
|
|
|
|
## Features
|
|
|
|
- 🎨 **Automatic Color Coding** - Table rows are automatically colored based on filament colors
|
|
- 🔄 **Confluence Sync** - Pulls filament data from Confluence table every 5 minutes
|
|
- 🔍 **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
|
|
|
|
## Technology Stack
|
|
|
|
- **Frontend**: React + TypeScript + Tailwind CSS
|
|
- **Backend**: API routes for Confluence integration
|
|
- **Infrastructure**: AWS Amplify (Frankfurt region)
|
|
- **IaC**: Terraform
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js 18+ and npm
|
|
- AWS Account
|
|
- Terraform 1.0+
|
|
- GitHub account
|
|
- Confluence account with API access
|
|
|
|
## Setup Instructions
|
|
|
|
### 1. Clone the Repository
|
|
|
|
```bash
|
|
git clone https://github.com/yourusername/filamenteka.git
|
|
cd filamenteka
|
|
```
|
|
|
|
### 2. Install Dependencies
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### 3. Configure Confluence Access
|
|
|
|
Create a Confluence API token:
|
|
1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
|
|
2. Create a new API token
|
|
3. Note your Confluence domain and the page ID containing your filament table
|
|
|
|
### 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
|
|
```
|
|
|
|
### 5. Environment Variables
|
|
|
|
The following environment variables are needed:
|
|
- `CONFLUENCE_API_URL` - Your Confluence instance URL (e.g., https://your-domain.atlassian.net)
|
|
- `CONFLUENCE_TOKEN` - Your Confluence API token
|
|
- `CONFLUENCE_PAGE_ID` - The ID of the Confluence page containing the filament table
|
|
|
|
## Local Development
|
|
|
|
```bash
|
|
# Create .env file for local development
|
|
cat > .env << EOF
|
|
CONFLUENCE_API_URL=https://your-domain.atlassian.net
|
|
CONFLUENCE_TOKEN=your_api_token
|
|
CONFLUENCE_PAGE_ID=your_page_id
|
|
EOF
|
|
|
|
# Run development server
|
|
npm run dev
|
|
```
|
|
|
|
Visit http://localhost:5173 to see the app.
|
|
|
|
## Table Format
|
|
|
|
Your Confluence table should have these columns:
|
|
- **Brand** - Manufacturer (e.g., BambuLab)
|
|
- **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** - Whether it's a refill spool
|
|
- **Vakum** - Vacuum sealed status
|
|
- **Otvoreno** - Opened status
|
|
- **Količina** - Quantity
|
|
- **Cena** - Price
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "Update filament colors"
|
|
git push origin main
|
|
```
|
|
|
|
Amplify will automatically build and deploy your changes.
|
|
|
|
## Adding New Colors
|
|
|
|
To add new color mappings, edit `src/data/bambuLabColors.ts`:
|
|
|
|
```typescript
|
|
export const bambuLabColors: Record<string, ColorMapping> = {
|
|
// ... existing colors
|
|
'New Color Name': { hex: '#HEXCODE' },
|
|
};
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Confluence Connection Issues
|
|
- Verify your API token is valid
|
|
- Check the page ID is correct
|
|
- Ensure your Confluence user has read access to the page
|
|
|
|
### Color Not Showing
|
|
- Check if the color name in Confluence matches exactly
|
|
- Add the color mapping to `bambuLabColors.ts`
|
|
- Colors are case-insensitive but spelling must match
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Commit your changes
|
|
4. Push to the branch
|
|
5. Create a Pull Request
|
|
|