Project Structure
ErikrafT Drop follows a well-organized structure separating client-side and server-side components, with clear separation of concerns for maintainability and scalability.Root Directory Structure
Client-Side Structure (public/)
Main Application Files
JavaScript Modules (public/scripts/)
Stylesheets (public/styles/)
Localization (public/lang/)
Server-Side Structure (server/)
Main Server Files
Data Models (server/model/)
Key Components
Client-Side Architecture
Main Application (public/scripts/main.js)
Network Layer (public/scripts/network.js)
UI Components (public/scripts/ui.js)
Server-Side Architecture
WebSocket Server (server/ws-server.js)
Peer Management (server/peer.js)
Configuration Files
Package Configuration (package.json)
Docker Configuration (docker-compose.yml)
RTC Configuration (rtc_config_example.json)
Build and Deployment
Development Setup
Production Deployment
Environment Variables
Extension and Integration Structure
Browser Extensions (Extensions/)
Mobile Applications
CLI Tool (erikraftdrop-cli/)
Testing and Quality Assurance
Test Structure
Code Quality Tools
- ESLint: JavaScript linting
- Prettier: Code formatting
- TypeScript: Type checking (where applicable)
- Jest: Unit testing framework
- Playwright: E2E testing
Documentation Structure
Technical Documentation
API Documentation
- WebSocket API: Real-time communication
- HTTP Endpoints: Configuration and health checks
- WebRTC API: Peer-to-peer communication
- IndexedDB API: Client-side storage