Files
Filamenteka/PROJECT_STRUCTURE.md
DaX 18110ab159 Major restructure: Remove Confluence, add V2 data structure, organize for dev/prod
- Import real data from PDF (35 Bambu Lab filaments)
- Remove all Confluence integration and dependencies
- Implement new V2 data structure with proper inventory tracking
- Add backwards compatibility for existing data
- Create enhanced UI components (ColorSwatch, InventoryBadge, MaterialBadge)
- Add advanced filtering with quick filters and multi-criteria search
- Organize codebase for dev/prod environments
- Update Lambda functions to support both V1/V2 formats
- Add inventory summary dashboard
- Clean up project structure and documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 01:12:50 +02:00

3.7 KiB

Project Structure

Overview

Filamenteka is organized with clear separation between environments, infrastructure, and application code.

Directory Structure

filamenteka/
├── app/                      # Next.js app directory
│   ├── page.tsx             # Main page
│   ├── layout.tsx           # Root layout
│   ├── admin/               # Admin pages
│   │   ├── page.tsx         # Admin login
│   │   └── dashboard/       # Admin dashboard
│   └── globals.css          # Global styles
│
├── src/                     # Source code
│   ├── components/          # React components
│   │   ├── FilamentTable.tsx
│   │   ├── FilamentForm.tsx
│   │   └── ColorCell.tsx
│   ├── types/              # TypeScript types
│   │   └── filament.ts
│   ├── data/               # Data and utilities
│   │   └── bambuLabColors.ts
│   └── styles/             # Component styles
│       └── select.css
│
├── lambda/                  # AWS Lambda functions
│   ├── filaments/          # Filaments CRUD API
│   │   ├── index.js
│   │   └── package.json
│   └── auth/               # Authentication API
│       ├── index.js
│       └── package.json
│
├── terraform/              # Infrastructure as Code
│   ├── environments/       # Environment-specific configs
│   │   ├── dev/
│   │   └── prod/
│   ├── main.tf            # Main Terraform configuration
│   ├── dynamodb.tf        # DynamoDB tables
│   ├── lambda.tf          # Lambda functions
│   ├── api_gateway.tf     # API Gateway
│   └── variables.tf       # Variable definitions
│
├── scripts/                # Utility scripts
│   ├── data-import/       # Data import tools
│   │   ├── import-pdf-data.js
│   │   └── clear-dynamo.js
│   ├── security/          # Security checks
│   │   └── security-check.js
│   └── build/             # Build scripts
│
├── config/                # Configuration files
│   └── environments.js    # Environment configuration
│
└── public/                # Static assets

Environment Files

  • .env.development - Development environment variables
  • .env.production - Production environment variables
  • .env.local - Local overrides (not committed)
  • .env.development.local - Local dev overrides (not committed)

Key Concepts

Environments

  • Development: Uses dev API Gateway stage and separate DynamoDB table
  • Production: Uses production API Gateway stage and main DynamoDB table

Data Flow

  1. Frontend (Next.js) → API Gateway → Lambda Functions → DynamoDB
  2. Authentication via JWT tokens stored in localStorage
  3. Real-time data updates every 5 minutes

Infrastructure

  • Managed via Terraform
  • Separate resources for dev/prod
  • AWS services: DynamoDB, Lambda, API Gateway, Amplify

Development Workflow

  1. Local Development

    npm run dev
    
  2. Deploy to Dev

    cd terraform
    terraform apply -var-file=environments/dev/terraform.tfvars
    
  3. Deploy to Production

    cd terraform
    terraform apply -var-file=environments/prod/terraform.tfvars
    

Data Management

Import Data from PDF

node scripts/data-import/import-pdf-data.js

Clear DynamoDB Table

node scripts/data-import/clear-dynamo.js

Security

  • No hardcoded credentials
  • JWT authentication for admin
  • Environment-specific configurations
  • Pre-commit security checks