Skip to main content

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
This project structure provides a solid foundation for development, deployment, and maintenance of the ErikrafT Drop file sharing system.