- Remove all DynamoDB-related scripts and data files - Remove AWS SDK dependencies from scripts - Update environment files to remove DynamoDB/Lambda references - Update PROJECT_STRUCTURE.md to reflect current architecture - Clean up Terraform variables and examples - Add PLA Matte to special pricing (3999 RSD / 3499 RSD refill) - Make all table columns sortable - Remove old Terraform state backups - Remove temporary data import files
3.8 KiB
3.8 KiB
Project Structure
Overview
Filamenteka is organized with clear separation between frontend, API, and infrastructure code.
Directory Structure
filamenteka/
├── app/ # Next.js app directory
│ ├── page.tsx # Main page
│ ├── layout.tsx # Root layout
│ └── upadaj/ # Admin pages
│ ├── page.tsx # Admin login
│ ├── dashboard/ # Filament management
│ └── colors/ # Color management
│
├── src/ # Source code
│ ├── components/ # React components
│ │ ├── FilamentTableV2.tsx
│ │ ├── EnhancedFilters.tsx
│ │ ├── ColorSwatch.tsx
│ │ ├── InventoryBadge.tsx
│ │ └── MaterialBadge.tsx
│ ├── types/ # TypeScript types
│ │ ├── filament.ts
│ │ └── filament.v2.ts
│ ├── services/ # API services
│ │ └── api.ts
│ └── styles/ # Component styles
│ ├── index.css
│ └── select.css
│
├── api/ # Node.js Express API
│ ├── server.js # Express server
│ ├── migrate.js # Database migration script
│ ├── package.json # API dependencies
│ └── Dockerfile # Docker configuration
│
├── database/ # Database schemas
│ └── schema.sql # PostgreSQL schema
│
├── terraform/ # Infrastructure as Code
│ ├── main.tf # Main configuration
│ ├── vpc.tf # VPC and networking
│ ├── rds.tf # PostgreSQL RDS
│ ├── ec2-api.tf # EC2 for API server
│ ├── alb.tf # Application Load Balancer
│ ├── ecr.tf # Docker registry
│ ├── cloudflare-api.tf # Cloudflare DNS
│ └── variables.tf # Variable definitions
│
├── scripts/ # Utility scripts
│ ├── security/ # Security checks
│ │ └── security-check.js
│ └── pre-commit.sh # Git pre-commit hook
│
├── 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)
Key Concepts
Architecture
- Frontend: Next.js static site hosted on AWS Amplify
- API: Node.js Express server running on EC2
- Database: PostgreSQL on AWS RDS
- HTTPS: Application Load Balancer with ACM certificate
Data Flow
- Frontend (Next.js) → HTTPS API (ALB) → Express Server (EC2) → PostgreSQL (RDS)
- Authentication via JWT tokens
- Real-time database synchronization
Infrastructure
- Managed via Terraform
- AWS services: RDS, EC2, ALB, VPC, ECR, Amplify
- Cloudflare for DNS management
- Docker for API containerization
Development Workflow
-
Local Development
npm run dev -
Deploy Infrastructure
cd terraform terraform apply -
Deploy API Updates
- API automatically pulls latest Docker image every 5 minutes
- Or manually: SSH to EC2 and run deployment script
Database Management
Run Migrations
cd api
npm run migrate
Connect to Database
psql postgresql://user:pass@rds-endpoint/filamenteka
Security
- No hardcoded credentials
- JWT authentication for admin
- Environment-specific configurations
- Pre-commit security checks
- HTTPS everywhere
- VPC isolation for backend services