Guide is based on real-world testing with a 2009 MacBook.
Image Orbograph: CC BY-NC 4.0Using 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:
-
Fork the repository on GitHub (click the "Fork" button at the top right)
-
Clone your fork instead of the original:
git clone https://github.com/YOUR_USERNAME/uni_monitoring.kr.git -
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):
# 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.
# 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
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)
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
GITHUB_USERNAME='your_github_username'
Part 5: Test the Installation
Run the main monitoring script:
./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:
crontab -e
Add this line:
*/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:
./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_tokenandpush_config.txt– GitHub credentials (if used)
Everything else can be recreated from the GitHub repository.
Project Structure (Key Files)
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 |
This work is licensed under CC0. It may be shared freely with attribution.