Initial Filamenteka setup - Bambu Lab filament tracker
- 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
This commit is contained in:
153
README.md
153
README.md
@@ -1,2 +1,155 @@
|
||||
# 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user