Skip to content

Latest commit

 

History

History
169 lines (119 loc) · 5.15 KB

File metadata and controls

169 lines (119 loc) · 5.15 KB

Sentinel logo

Sentinel

Defensive telemetry for EVE Frontier turret operators.

Table of Contents


Sentinel is an EVE Frontier dashboard for live monitoring of a user's turret assemblies; their interactions, and current status.

The project combines a React dashboard, a Bun/Express support API, and a Rust indexer that follows turret activity on Sui blockchain.

What It Covers

  • Displaying Turret Smart Assembly objects owned by the logged in wallet
  • Event history and threat intelligence from indexed on-chain turret events
  • Solar-system mapping for working around the location obfuscation in EVE, players can assign solar-systems to their network nodes
  • Galaxy plotting by network-node; assign solar systems to network-nodes to map turrets
  • Live operator view

Tech Stack

  • Bun workspaces for the monorepo, scripts, and API runtime
  • React 19 and Vite for the dashboard
  • TypeScript across the dashboard, API, and shared contracts
  • Tailwind CSS v4 for styling
  • Express 5 and pg for dashboard support APIs
  • Rust with tokio, reqwest, tokio-postgres, and diesel for the Sui indexer
  • PostgreSQL for indexed events, node mappings, and derived dashboard state
  • Podman Compose for the preferred local development stack
  • Vitest, Testing Library, Playwright, ESLint, and Prettier for validation

Repository Layout

.
|-- apps/
|   |-- dashboard/      # React dashboard UI
|   |-- api/            # Bun + Express support API
|   `-- indexer/        # Rust indexer for Sui turret events
|-- packages/
|   `-- shared-types/   # Shared GraphQL queries and TypeScript contracts
|-- docs/               # Product, domain, design system, ADRs
|-- specs/              # Speckit specs, plans, tasks, quickstarts
|-- assets/             # Shared branding assets
`-- docker-compose.yml

EVE Hackathon Notes

The 2026 EVE Hackathon was ongoing during Cycle 5 of EVE Frontier, and at this time there were momumental changes made to the game. Some of these changes, such as certain on-chain events, were not fully functional yet for the hackathon.

To work around missing on-chain events, this application created a "demo-mode" that populates the dashboard with static mocks.

Demo mode will be removed from the application after the on-chain events become available, it will not be maintained long-term.

NOTE: The data in demo mode is entirely static, it makes no attempt to simulate live data.

Access demo-mode by the /demo sub-path (e.g. http://localhost:5173/demo).

Getting Started

Prerequisites

  • Podman and podman compose
  • Bun 1.2+ for host-native workflows
  • Rust and cargo if you want to run the indexer outside containers

Preferred Local Workflow

The repo is designed to be iterated on with the development stack:

podman compose -f docker-compose.yml up

Local services:

  • dashboard: http://127.0.0.1:5173
  • api: http://127.0.0.1:3002
  • postgres: 127.0.0.1:5433

Useful routes:

  • live dashboard: http://127.0.0.1:5173
  • demo dashboard: http://127.0.0.1:5173/demo

Use the live dashboard when you want the real wallet-connected flow. Use /demo when you want a fixture-backed review surface without depending on live telemetry.

Notes:

This project was built and tested using podman and podman compose. Use docker at your own discretion.

  • The dev stack defaults to the current Utopia world assumptions
  • the demo route stays fixture-backed on purpose; it does not pretend to be live telemetry
  • some older repo quickstarts still mention 5174, but the checked-in dashboard runtime is currently configured for 5173

Rebuild Local Stack

For a fresh container rebuild of the current local stack, use:

podman compose -f docker-compose.yml up --build

Host-Native Workflow

If you want to run pieces directly on your machine instead of through Podman:

bun install
bun run dev
cargo run --manifest-path apps/indexer/Cargo.toml

The root dev script starts the dashboard and API together. The indexer runs separately.

Validation

For dashboard-focused work, start with:

bun lint
bunx vitest run --environment jsdom

For the full repo:

bun test

For indexer-only work:

cargo test --manifest-path apps/indexer/Cargo.toml

Documentation

  • CONTRIBUTING.md for contribution rules and commit expectations
  • CHANGELOG.md for notable project changes
  • Design and spec documentation is located in the ./docs directory.

License

This project is licensed under the MIT License.