This repository contains the API for the University of Adelaide Course Guide GPT, an AI-powered guide that helps users select courses at the University of Adelaide. The API, built with Flask, interfaces with a SQLite database to manage and provide detailed information about university courses. It is an integral part of the system, enabling the GPT to access up-to-date course data through structured endpoints.
- RESTful API for querying university courses and subjects.
- Integration with a SQLite database for persistent storage of course information.
- Custom web scraping script (
webParser.py) for extracting and updating course data. - OpenAPI specification for clear API documentation.
- Plugin manifest (
ai-plugin.json) included for broader system integration.
- Python 3.x
- Flask
- SQLite3
- Additional Python libraries:
requests,BeautifulSoup,yaml,re,urllib3
- Clone the repository:
git clone git@github.com:jackdrowlands/courseHelperAPI - Install the required Python libraries:
pip install -r requirements.txt
Start the application with:
python app.py
This command launches the Flask server, making the API accessible for the University of Adelaide Course Guide GPT.
The following endpoints are critical for the GPT to function effectively:
GET /UoA/subjects: Lists distinct subjects available.GET /UoA/courses/<subject>/<level>: Retrieves courses based on subject and level.GET /UoA/courses/<course_code>: Provides details for a specific course.- Endpoints for serving plugin assets like logo, OpenAPI spec, and plugin manifest.
The webParser.py script scrapes course data from specified URLs for database updates. It's pivotal for maintaining current course information.
ai-plugin.json: Describes the API for integration with external systems.openapi.yaml: Documents the API endpoints and their specifications.
Integration with University of Adelaide Course Guide GPT
This API is designed to work in tandem with the University of Adelaide Course Guide GPT. It provides the necessary backend support for the AI model to deliver accurate and up-to-date course information to users.
This API is not officially endorsed by the University of Adelaide. It is a student project and is not intended for commercial use.



