AutonomousVehicleControlBeginnersGuide
关于自动驾驶车辆控制算法的 Python 示例代码与文档。本项目可作为技术指南书,供初学者学习这些算法与软件架构。
AI 翻译
Deployed study workspace with Canvas imports, RAG, background jobs, Docker/Jenkins CI/CD, and production operations.
翻译准备中
正在加载完整 README。
查看完整 README ↗A full-stack learning workspace for student notes, uploaded files and Canvas LMS material. It separates request-serving work from long-running ingestion and retrieval workloads so imported content can become searchable without blocking the main application.
Project provenance: OghmaNotes began as a University of Galway team project by Samuel Regan, Semyon Fox and Shreyansh Singh. Its editor foundation incorporates MIT-licensed Notea components; see the repository attribution and licence material.
Browser
│
▼
Next.js application ───────────────► PostgreSQL (ownership, metadata, state)
│ Qdrant (vector retrieval)
│ S3-compatible storage (files)
▼
Redis / BullMQ ───► Node worker ───► Canvas, extraction/OCR, AI providers
The application owns user-facing requests and durable relational state. The worker handles slow or retryable work; vector retrieval and object storage remain separate from the primary relational model.
^22.22.2, ^24.15.0, or >=26.0.0 (the ranges in package.json)Use npm for this repository.
This path starts local PostgreSQL, Redis, Qdrant, RustFS, Mailpit and a deterministic fake-AI provider. It is intended for development, not representative AI quality.
npm ci
cp .env.mock.example .env.mock
npm run mock:up
npm run mock:seed
npm run dev:mock
Open http://127.0.0.1:3311/login and sign in with:
[email protected]
E2ePassword123!
The mock stack does not automatically start the background worker. Run it in a second terminal before using streamed chat, imports, indexing, or other queued work:
# Second terminal
node --experimental-strip-types scripts/dev/run-mock.ts npm run worker
# Verify its database and queue dependencies, including chat generation
node --experimental-strip-types scripts/dev/run-mock.ts npm run worker:healthcheck
Stop and remove the disposable stack when finished:
npm run mock:down
Copy .env.example to .env.local and configure PostgreSQL, Redis, Qdrant, S3-compatible storage, auth secrets and the providers you control:
cp .env.example .env.local
npm run dev
The worker does not load .env.local automatically. In a second POSIX shell, explicitly load the same environment before starting it:
set -a
. ./.env.local
set +a
npm run worker
App and worker must use matching database, Redis/queue, Qdrant, storage and provider configuration.
npm run lint:all
npm run build
For isolated integration services, use a disposable database only—e2e:reset intentionally resets it:
cp .env.e2e.example .env.e2e
npm run e2e:services:up
npm run e2e:reset
npm run test:integration
npm run e2e:services:down
Install Chromium without OS packages when they are already available:
npm exec playwright install chromium
npm run e2e:smoke -- --workers=1
The smoke suite is available for local verification; check its current result rather than assuming every browser/platform combination is green.
The application and worker images are independently buildable:
docker build -t oghma:local .
docker build -f Dockerfile.worker -t oghma-worker:local .
The root Compose file is a homelab/Jenkins convenience configuration, not a fresh-clone production deployment. A real deployment needs private environment configuration plus PostgreSQL, Redis/BullMQ, Qdrant, S3-compatible storage, auth and provider services. Follow infra/HOMELAB.md and the worker runbook rather than copying private operator paths.
| Area | Technology |
|---|---|
| Application | Next.js, React, TypeScript |
| Data and retrieval | PostgreSQL and Qdrant |
| Async processing | Redis, BullMQ, Node worker |
| Files | S3-compatible object storage |
| AI pipeline | Configurable LLM, embedding and optional OCR providers |
| Delivery | Docker, Jenkins, Cloudflare Tunnel |
| Validation | Vitest, Playwright, ESLint, GitHub Actions |
Start with docs/README.md for the canonical documentation map. The most relevant technical references are the architecture, the per-area domain map, the import pipeline and deployment/operations documents.