mirror of
https://github.com/Xevion/banner.git
synced 2025-12-09 16:06:32 -06:00
71ac0782d01d0843749035be006db5da77450540
Improve JSON parsing error messages with build-specific behavior: - Debug builds: Show full parent object context and type mismatch details - Release builds: Keep minimal snippets to avoid log spam Add comprehensive test coverage for error handling and path parsing.
fix: pass RAILWAY_GIT_COMMIT_SHA through Docker, provide Cargo.toml for frontend (version retrieval)
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
pnpm install -C web # Install frontend dependencies
cargo build # Build the backend
just dev # Runs auto-reloading dev build
just dev --services bot,web # Runs auto-reloading dev build, running only the bot and web 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
Languages
Rust
88.5%
TypeScript
8.4%
Dockerfile
1.1%
Just
0.8%
JavaScript
0.6%
Other
0.6%