Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊 Maritime LoRa Mesh Network Simulator

Software-in-the-Loop Maritime Telecommunications, Mesh Routing & Physical Ether Simulator

An integrated platform designed to simulate and evaluate low-frequency LoRa radio ad-hoc networks in maritime environments. Features realistic physical radio propagation, pure binary payload compression, dynamic multi-hop routing topologies, and real-time fleet command visualization.

CI Quality Gates ISO 25010 ISO 27001 ISO 12207 Go Next.js Mobile Docker License: MIT


Repository Architecture Overview

This repository represents the main branch, housing the monorepo for the core backend services and the harbor master web monitoring dashboard:

Component Path Technology Stack Default Port
Backend Core & Ether backend/ Go 1.22 · Gorilla WebSocket · PostgreSQL 16 · Redis 7 :8080
Harbor Master Web Dashboard frontend/ Next.js 16 · React 19 · TypeScript · Tailwind CSS · Leaflet Maps :3000

The companion maritime vessel node application (Flutter, featuring offline Store-and-Forward SQLite & raw binary codecs) is maintained on a dedicated branch: mobile (architecturally aligned with the sespimma multi-tier structure).


🏛️ Monorepo Directory Layout (main)

maritime-simulation/
├── backend/              # [Tier 1] Go 1.22 Core Service & Physical Ether Simulator
│   ├── cmd/              # Gateway server entrypoint & fleet simulator harness (nodesim)
│   ├── internal/         # Clean Architecture (Domain, Service, Repository, Protocol, WS)
│   ├── migrations/       # PostgreSQL database migrations (Sessions, Edges, Schemas, Telemetry)
│   └── Dockerfile        # Minimal multi-stage production Go binary build
├── frontend/             # [Tier 2] Next.js 16 Web Dashboard (Harbor Master Monitor)
│   ├── src/              # Modular Clean Component Architecture (Leaflet Maps, WS Monitor)
│   ├── public/           # Static assets & maritime navigation icons
│   └── Dockerfile        # Production standalone Next.js container
├── docker-compose.yml    # Master orchestrator (Postgres 16, Redis 7, Backend, Frontend)
├── LICENSE               # Official MIT License
├── SECURITY.md           # ISO 27001 Vulnerability Disclosure Policy
└── README.md             # System master architecture documentation

⚙️ Core Engineering Capabilities

1. Backend: Virtual Ether & Network Controller (Go)

  • Physical Propagation Modeling: Real-time payload size constraints based on Spreading Factor (SF7=222B down to SF12=51B) with dynamic ACK timeout curves.
  • Dynamic Mesh Topology: BFS-based shortest multi-hop route computation (up to 5 hops) evaluated across GPS Haversine distance matrices.
  • Probabilistic Packet Loss: Radio degradation curves factoring distance tiers and dynamic maritime storm weather anomalies.
  • WebSocket Gateway: Dual isolated channel architecture — high-throughput node communications and read-only telemetry broadcast for command dashboards.
  • Zero Goroutine Leak: Worker-pool architecture fortified with panic-recovery middleware.

2. Frontend: Harbor Master Command Dashboard (Next.js)

  • Real-Time Geospatial Visualization: Interactive Leaflet maritime chart displaying live multi-hop LoRa propagation links, radio parameters, and vessel coordinates.
  • Session & Virtual Edge Management: Runtime simulation parameter tuning, dynamic weather anomaly injection, and coastal gateway management.
  • Telemetry Audit Logging: Raw binary frame inspection, delivery ratio tracking, and historical latency graphs.

3. Mobile: Maritime Vessel Node Client (Branch mobile)

  • Isolated Branch: Maintained on mobile.
  • Key Features: LoRa data link state machine with 3x retry limit, exponential backoff (1s→30s), SQLite Store-and-Forward disruption-tolerant queue, and schema-driven dynamic binary serialization.

🚀 Quick Start Guide

Deploying the Stack via Docker Compose

Run the entire server-side ecosystem (PostgreSQL 16, Redis 7, Go Backend, and Next.js Dashboard) with a single command:

# Clone the repository
git clone git@github.com:dafayape/maritime-simulation.git
cd maritime-simulation

# Start the full stack
docker compose up -d --build
  • Web Dashboard: http://localhost:3000
  • Backend API & WebSocket: http://localhost:8080
  • Fleet Simulator (Optional):
    cd backend
    go run ./cmd/nodesim -nodes 20 -interval 5s

🧪 Quality Gates & Automated Verification

# 1. Backend Go Tests (Race detector & test coverage)
cd backend && go test -v -race ./...

# 2. Frontend Next.js Lint & Tests
cd frontend && npm run lint && npm test

# 3. Mobile Flutter Tests (Switch to mobile branch)
git checkout mobile && flutter test

🛡️ ISO Standards Compliance

Standard Scope Implementation Details
ISO/IEC 25010:2023
(Software Product Quality)
Suitability & Efficiency Strict protocol validation, 100% test coverage across data link state machines, compact binary payloads, and sub-millisecond route calculations.
ISO/IEC 27001:2022
(Information Security)
Integrity & Governance All commits cryptographically signed via Ed25519 GPG Key (7573912AF4141E99), zero hardcoded secrets guarantee, and structured disclosure in SECURITY.md.
ISO/IEC 12207:2017
(Software Life Cycle)
Process Governance Clean Architecture separation, automated unit/integration quality gates, and 100% Conventional Commits v1.0.0 history.

License

Distributed under the MIT License. See LICENSE for details.

Author

Daffa Jaya Perkasa
Full-Stack | Mobile | AI | DevOps Engineer

About

Software-in-the-Loop Maritime Telecommunications, LoRa Mesh Routing, & Physical Ether Simulator. Monorepo featuring Go 1.22 (Virtual Ether), Next.js 16 (Command Dashboard), and Flutter (Ship Node). Compliant with ISO 25010, 27001, & 12207.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages