https://github.com/compsci-adl/courses-api
API for getting Adelaide University course information
https://github.com/compsci-adl/courses-api
api fastapi python scraper university
Last synced: 5 months ago
JSON representation
API for getting Adelaide University course information
- Host: GitHub
- URL: https://github.com/compsci-adl/courses-api
- Owner: compsci-adl
- License: mit
- Created: 2024-07-03T07:39:24.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-10T03:12:31.000Z (5 months ago)
- Last Synced: 2026-01-11T00:53:01.403Z (5 months ago)
- Topics: api, fastapi, python, scraper, university
- Language: Python
- Homepage:
- Size: 19.6 MB
- Stars: 26
- Watchers: 2
- Forks: 14
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Courses API
Courses API is a tool to scrape course information from the Adelaide University website and provide course data to other CS Club Open Source Team projects via an API endpoint.
## Getting Started
To get started, please follow these steps:
1. Install `uv` if not already installed:
Linux, macOS, Windows (WSL)
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Windows (Powershell)
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
2. Install dependencies:
```sh
uv sync
pre-commit install
```
3. Make a `.env` file and copy `.env.example` into it
### Running the API Server
1. Start the FastAPI server:
```sh
uv run fastapi dev src/server.py
```
2. Open [http://localhost:8000/docs](http://localhost:8000/docs) with your browser to see the API documentation and to test the available endpoints.
### Running the scraper
Start the scraper (Note: Scraping all the courses may take over an hour):
```sh
uv run python3 src/scraper.py
```
#### Debugging
The output level of the logger can be configured in the `.env`. Set `DEFAULT_LOGGING_LEVEL` to your desires level such as `DEBUG` and `ERROR`. `DEBUG` outputs all logs into a file, including errors. `ERROR` only logs errors into a log file.
## Contributing
We welcome contributions to enhance Courses API! If you find any issues, have suggestions, or want to request a feature, please follow our [Contributing Guidelines](https://github.com/compsci-adl/.github/blob/main/CONTRIBUTING.md).
## License
This project is licensed under the MIT License.
See [LICENSE](LICENSE) for details.