mirror of
https://github.com/Xevion/banner.git
synced 2026-01-31 06:23:37 -06:00
8bfc14e55c1bdf5acc2006096476e0b1eb1b7cc6
Add logic to detect and label asynchronous online sections (INT building with TBA times) separately from synchronous online courses. Update table rendering to show "Async" instead of "TBA" for these sections.
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%