Skip to content
HighlanderRoboticsPublic

About

Source code for Lovat, a scouting system for the First Robotics Competition

Topics

Resources

Stars

3 stars

Watchers

2 watching

Forks

Latest commit

 

History

2,675 Commits

Folders and files

Repository files navigation

Lovat

CI Tests (CI workflow) CodeQL

Lovat is Highlander Robotics Team 8033's scouting system for FIRST Robotics Competition events. It collects match observations, analyzes team performance, supports scouting operations, and presents data for match strategy and alliance selection.

Applications

Path Purpose Technology
apps/collection Field-side match collection, offline history, and report upload Expo, React Native, TypeScript
apps/server API, authentication, storage, imports, caching, and analysis Node.js, Express, TypeScript, Prisma, PostgreSQL, Redis
apps/dashboard Analysis, scouting management, predictions, and picklists Flutter and Dart
apps/website Public site and selected operational routes SvelteKit and TypeScript
apps/learn User guides for Dashboard and Collection Astro, Starlight, MDX, Svelte

Data flow

Collection ── reports ──> Server <── schedules and results ── The Blue Alliance
                            │
                            ├── PostgreSQL: durable data
                            ├── Redis: analysis cache
                            └── authenticated API ──> Dashboard

Website provides public pages and selected operational integrations.

See docs/architecture.md for boundaries and cross-application contracts.

Prerequisites

  • Server: Node.js 22.20.0, PostgreSQL, and Redis.
  • Collection: Node.js 24.6.0 and Expo/EAS tooling.
  • Dashboard: Flutter; CI versions are documented in its local instructions.
  • Website: Node.js 20.19.6.
  • Learn: Node.js 22 and npm.
  • macOS and Xcode are required for local iOS builds.

Each application retains its own lockfile. Install dependencies inside the application directory.

Commands

./scripts/check-structure.sh
./scripts/check-all.sh

Application development commands:

cd apps/server && npm run dev
cd apps/collection && npm start
cd apps/dashboard && flutter run -d chrome
cd apps/website && npm run dev
cd apps/learn && npm run dev

Several applications require environment files or external services for full runtime behavior. Copy only committed .env.example files and never commit credentials.

Working here

Read AGENTS.md and the nearest app-local AGENTS.md before editing. Keep changes within the app that owns the behavior. Update all affected producers and consumers together when a shared contract changes.

Linear MCP

This repository configures Linear as a project-scoped MCP server for Codex. Authentication is stored per user and is never committed.

After cloning the repository, trust the project when Codex prompts you, then authenticate:

codex mcp login linear

Run codex mcp get linear to verify the server configuration, or use /mcp inside an interactive Codex session. Start a new Codex session if one was already open when you authenticated.

Deployment

The server test overview can be published by CI after successful server checks on main. See test report hosting for setup.

  • Server: Railway, repository root /, config /apps/server/railway.json, Dockerfile apps/server/Dockerfile (includes packages/db). See database deployment requirements.

  • Dashboard: Netlify web deployment and GitHub Actions Android artifact.

  • Collection: EAS, project root apps/collection.

  • Website: Netlify, base directory apps/website.

  • Learn: static site; base directory apps/learn, build npm run build, output dist.

History

See the changelog for changes grouped by month and feature across Lovat's full history and the complete commit archive for all retained main and tagged application history, beginning in December 2022.

This repository combines formerly separate repositories, including MangoSwirl/lovat-learn (see Learn import). Default-branch histories and namespaced release tags are retained. Original-to-rewritten maps and migration evidence are in docs/migration; the source repositories remain the record for old pull requests and feature branches.

About

Source code for Lovat, a scouting system for the First Robotics Competition

Topics

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages