Our Humanity Our Truth

Breaking

University Website Announcement Monitoring Project (github code project)

Guide is based on real-world testing with a 2009 MacBook.

Abstract A tested, real-world guide to getting the university admission monitoring system up and running on a fresh Manjaro installation. This will assist anyone using the code at Github, uni_monitoring.kr
Image Orbograph: CC BY-NC 4.0

Using This Code for Your Own Project

This guide assumes you want to run the project as-is. If you plan to customize it for your own needs:

  1. Fork the repository on GitHub (click the "Fork" button at the top right)

  2. Clone your fork instead of the original:

    bash
    git clone https://github.com/YOUR_USERNAME/uni_monitoring.kr.git
  3. Make your changes, then push back to your own fork

All subsequent steps (installing dependencies, configuring, running) remain exactly the same.

What This Guide Covers

This is a migration guide—taking the working project from an existing installation and setting it up on a new computer. It assumes you have:

  • A working Manjaro (or similar Arch-based) system

  • Your existing project files backed up (or cloned from GitHub)

  • An internet connection for installing packages

  • You have read the readme for setting up required components (Telegram channel, etc)

Part 1: System Dependencies

Install required packages (all available in Manjaro's repositories):

bash
# Core Python libraries
sudo pacman -S python-beautifulsoup4 python-feedparser python-requests python-lxml python-selenium

# Korean language support (encoding + parsing)
sudo pacman -S python-chardet python-html5lib

# Git (if not already installed)
sudo pacman -S git

Part 2: Google Chrome & ChromeDriver

The project uses Selenium to scrape JavaScript-rendered content.

bash
# Install Chrome stable
pamac install google-chrome

ChromeDriver is handled automatically by modern Selenium—no manual installation or path configuration needed.

Part 3: Get the Project Code

Option A: Fresh Clone from GitHub

bash
git clone https://github.com/tantry/uni_monitoring.kr.git
cd uni_monitoring.kr

Option B: Restore from Backup

If you have a backup of your working project folder, copy it to your new system and navigate into it.

Part 4: Configure the Project

Create the following files in the project root directory.

1. Telegram Configuration (config/config.yaml)

yaml
telegram:
  bot_token: "YOUR_BOT_TOKEN"
  chat_id: "YOUR_CHAT_ID"

Get your token from @BotFather on Telegram. Find your chat ID by messaging @userinfobot.

2. GitHub Push Configuration (Optional)

If you plan to push changes back to GitHub:

.github_token – contains only your GitHub personal access token (no extra spaces or newlines) push_config.txt

text
GITHUB_USERNAME='your_github_username'

Part 5: Test the Installation

Run the main monitoring script:

bash
./check_now.sh

You should see output from all three scrapers (Adiga, KHCU, Seoul Cyber University) and receive Telegram notifications for new articles.

Part 6: Automate with Cron

To run the monitor every 30 minutes:

bash
crontab -e

Add this line:

text
*/30 * * * * cd /path/to/uni_monitoring.kr && ./check_now.sh >> logs/cron.log 2>&1

Part 7: Daily GitHub Push (Optional)

If you want to automatically commit and push changes:

bash
./daily_push.sh

The script will show you what's changed and ask for confirmation before pushing.


Troubleshooting Notes

Issue Likely Fix
"Module not found" errors Ensure all python-* packages from Part 1 are installed
Chrome/ChromeDriver errors The scraper now uses Selenium's automatic driver management—no manual configuration needed
Telegram not sending Verify bot_token and chat_id in config/config.yaml
GitHub push fails Check that .github_token contains a valid token with repo scope

Files You Need to Migrate

If you're moving from an old system, these files contain your custom data and should be copied over:

  • config/config.yaml – Telegram credentials

  • data/state.db – Record of already-sent articles (prevents duplicates)

  • .github_token and push_config.txt – GitHub credentials (if used)

Everything else can be recreated from the GitHub repository.


Project Structure (Key Files)

text
uni_monitoring.kr/
├── config/               # Configuration files (YAML)
├── scrapers/             # Individual site scrapers
├── core/                 # Core monitoring logic
├── data/                 # SQLite database (auto-created)
├── logs/                 # Log files (auto-created)
├── check_now.sh          # Run monitoring once
├── daily_push.sh         # Git commit + push
└── README.md             # Full project documentation

This guide gets the project running on a new system in under 15 minutes. For detailed configuration options (adding new sources, adjusting filters, understanding the two-layer filtering system), refer to the README on GitHub.

The Fork → Clone → Customize Workflow

Step What They Do Why
1. Fork Click "Fork" on your GitHub repo Creates a copy under their own GitHub account
2. Clone git clone https://github.com/their-username/uni_monitoring.kr.git Downloads their copy to their local machine
3. Customize Edit scrapers, add sources, modify filters Makes the project work for their needs
4. Push git push to their own repo Saves their changes to their GitHub fork
5. (Optional) Contribute back Open a pull request Share improvements with you
 
First published by Bushgrad on et2libre.wordpress.com/ — 14 March 2026.
This work is licensed under CC0. It may be shared freely with attribution.