An open API service indexing awesome lists of open source software.

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.

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.