Xevion 5dd35ed215 fix(web): prevent duplicate searches and background fetching on navigation
- Search page no longer triggers cascading search when validating subjects
- Scraper page stops all refresh timers and API calls when navigating away
- Wrap initial data references in untrack() to silence Svelte warnings
2026-01-31 01:03:20 -06:00
2026-01-31 00:37:13 -06:00
2026-01-31 00:37:13 -06:00
2026-01-31 00:37:13 -06:00
2026-01-31 00:37:13 -06:00

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)

    • Primary interface for course monitoring and data queries
    • Built with Serenity and Poise frameworks for robust command handling
    • Uses slash commands with comprehensive error handling and logging
  • 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

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
No description provided
Readme 3.7 MiB
Latest
2026-01-31 00:37:13 -06:00
Languages
Rust 58.5%
Svelte 26%
TypeScript 14.4%
CSS 0.6%
Dockerfile 0.3%
Other 0.2%