https://github.com/lates-codrin/schedulemonitor
An API that keeps track of a html table, notifying you if it is changed within a timeframe.
https://github.com/lates-codrin/schedulemonitor
fastapi python scraper-api
Last synced: 29 days ago
JSON representation
An API that keeps track of a html table, notifying you if it is changed within a timeframe.
- Host: GitHub
- URL: https://github.com/lates-codrin/schedulemonitor
- Owner: lates-codrin
- License: mit
- Created: 2025-03-22T08:39:07.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-02T10:16:43.000Z (10 months ago)
- Last Synced: 2025-08-02T12:29:13.007Z (10 months ago)
- Topics: fastapi, python, scraper-api
- Language: Python
- Homepage: https://schedule-monitor.vercel.app
- Size: 40 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐
Schedule Monitor API
A FastAPI-based service that scrapes academic timetable data from HTML pages and exposes it via a simple RESTful API. This project fetches group schedules, tracks updates, and provides access to campus news and room info from [webfmi.vercel.app](https://webfmi.vercel.app/).
---
## ๐ Features
- โ
Scrapes and parses HTML tables into structured JSON
- ๐ Automatically detects and reports timetable changes
- ๐ฌ Fetches announcements/news
- ๐ซ Maps room names to their locations
- ๐งช Fully interactive OpenAPI docs (Swagger UI)
---
## ๐ API Documentation
### ๐งช Swagger UI
Visit the interactive docs at:
http://localhost:8000/orar/docs || https://schedulemonitor.onrender.com/orar/docs
---
## ๐ฆ Endpoints Overview
| Method | Path | Description |
|--------|---------------------|--------------------------------------|
| `GET` | `/` | Welcome message |
| `GET` | `/rescan` | Rescan all pages and update groups |
| `GET` | `/orar/{grupa}` | Get timetable data for a group |
| `GET` | `/news` | Get latest news/announcements |
| `GET` | `/rooms` | Get room names and their locations |
---
## ๐ ๏ธ Tech Stack
- [FastAPI](https://fastapi.tiangolo.com/) - Web framework
- [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) - HTML parsing
- [Pandas](https://pandas.pydata.org/) - Tabular data handling
- [Uvicorn](https://www.uvicorn.org/) - ASGI server
---
## ๐ฅ Installation
```bash
# Clone the repo
git clone https://github.com/lates-codrin/ScheduleMonitor.git
cd schedule-monitor-api
# Create a virtual environment and activate it
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
```
## ๐งช Run the App
```bash
uvicorn main:app --reload
```
Then open: http://localhost:8000/orar/docs
---
๐ค Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what youโd like to change.