AggieSeek Developer Documentation
Welcome to the official developer documentation for AggieSeek — a platform built by and for Texas A&M students to monitor course availability, track classes, and receive real-time notifications when seats open up.
This documentation is intended exclusively for internal development use. It provides a complete technical overview of the platform’s architecture, development workflows, deployment processes, and integration details.
What is AggieSeek?
AggieSeek is a modern web application that enables Texas A&M students to:
- View the current list of available courses and sections
- Track individual course sections of interest
- Analyze current and past course information to decide what to enroll in
- Get notified via Discord or SMS when tracked sections become available
Core Architecture
AggieSeek consists of the following core components:
- Frontend: Built with Next.js, styled with Tailwind CSS and ShadCN UI.
- Backend Services:
- A minute-based tracker that monitors course availability and triggers notifications.
- A ten-minute updater that refreshes the PostgreSQL database for frontend use.
- Database: User and course data is stored in Amazon RDS (PostgreSQL).
- Infrastructure: Dockerized applications deployed on Hetzner Cloud, served via NGINX and DNS managed by Cloudflare.
Documentation Structure
Here's what you'll find in this documentation:
- Architecture: System diagram and high-level overview
- Setup Guides: Local development, environment variables, and tooling
- Frontend: Structure, components, and API routes
- Services: Python-based scripts for tracking and updating
- Backend: Database schema and query details
- Deployment: Docker, Hetzner setup, and DNS configuration
- Integrations: How AggieSeek uses Discord, Twilio, and the Howdy API
- Misc: Roadmap, TODOs, and developer notes
Contributing
If you're joining the project or making changes, please review the Setup Guides and Development Workflow to get started. All contributions should follow the established structure and be tested before deployment.
Support
Encountering issues or have suggestions? Reach out to Peter on discord (koipanda) or open an issue in the repository.
Gig 'em! :)