mirror of
https://github.com/Xevion/banner.git
synced 2026-01-31 08:23:35 -06:00
87db1a4ccb7d59520e8c1267a113e26b6d18bee4
Move all [script("bun")] blocks into standalone TypeScript files under
scripts/ with shared utilities in scripts/lib/. The Justfile is now ~40
lines of thin `bun scripts/*.ts` wrappers.
Shared code consolidated into two lib files:
- lib/proc.ts: process spawning (run, spawnCollect, raceInOrder, ProcessGroup)
- lib/fmt.ts: color output, elapsed timers, reusable flag parser
banner
A complex multi-service system providing a Discord bot and browser-based interface to UTSA's course data.
Services
The application consists of three modular services that can be run independently or together:
-
Discord Bot (
bot) -
Web Server (
web)- Axum-based server with Vite/React-based frontend
- Embeds static assets at compile time with E-Tags & Cache-Control headers
-
Scraper (
scraper)- Intelligent data collection system with priority-based queuing inside PostgreSQL via
sqlx - Rate-limited scraping with burst handling to respect UTSA's systems
- Handles course data updates, availability changes, and metadata synchronization
- Intelligent data collection system with priority-based queuing inside PostgreSQL via
Quick Start
bun install --cwd web # Install frontend dependencies
cargo build # Build the backend
just dev # Runs auto-reloading dev build with all services
just dev-build # Development build with release characteristics (frontend is embedded, non-auto-reloading)
just build # Production build that embeds assets
Documentation
Comprehensive documentation is available in the docs/ folder.
Description
Releases
1
Languages
Rust
58.5%
Svelte
26%
TypeScript
14.4%
CSS
0.6%
Dockerfile
0.3%
Other
0.2%