This project is a comprehensive bot developed for Kastamonu University students.
Instead of constantly visiting different sites (UBYS, SKS, Academic Calendar) to check for updates, this bot runs automatically on GitHub Actions (4 times a day) and instantly sends every relevant update directly to your phone via Telegram.
- 🔐 Secure Data: Your grades are kept encrypted on GitHub Secret Gist. No one else can see them.
- ⚡ Instant Notification: Sends a notification with the course name and grade when a new score is entered (Midterm, Final, Makeup, Homework).
- 🧠 Target Calculation: When your midterm grade is announced, it calculates what you need to score on the final to pass the course (CC) or achieve a high grade (AA).
- 🎓 GPA Tracking: Notifies you when your GPA (GANO) or Semester GPA (YANO) changes on your transcript.
- ⏳ Countdown: Starts a countdown timer 45 days before important dates like Midterms, Finals, and Registration Week.
- 🛡️ Department Filter: Automatically filters out the dates of faculties that don't concern you, such as Medicine or Veterinary, and shows only the ones relevant to you.
- 🥘 Daily Menu: Reports what will be served in the cafeteria that day (Soup, Main Course, Dessert, etc.) every morning.
- 💤 Weekend Mode: Does not send unnecessary notifications on weekends since the cafeteria is closed.
Follow the steps below in order to run this project on your own account.
Copy the project to your own GitHub account by clicking the Fork button in the top right corner.
- Go to gist.github.com.
- Type
notlar.jsonin the filename section. - Put only two curly braces in the content section:
{} - Select the "Create secret gist" option from the green button and create it.
- Copy the complex code at the end of the link in your browser's address bar. (This will be your
GIST_ID).
- On GitHub, navigate to Settings -> Developer Settings -> Personal access tokens -> Tokens (classic).
- Create a new token by clicking "Generate new token (classic)".
- Give it a name (e.g., UBYS Bot) and check only the
gistbox under the scopes. - Copy the generated code at the bottom. (This will be your
GIST_TOKEN).
- Find @BotFather on Telegram and create a new bot with the
/newbotcommand. Save the API Token it gives you. - Open @userinfobot on Telegram and send
/startto find out your own Chat ID.
You must introduce your credentials to the project for the bot to work. Go to Settings > Secrets and variables > Actions on your repo page, click New repository secret, and add the following variables:
| Secret Name | Value (Example) | Description |
|---|---|---|
OGRENCI_NO |
242609006 |
Your UBYS Student number |
SIFRE |
password123 |
Your UBYS login password |
BOT_TOKEN |
123456:ABC... |
Token received from Telegram BotFather |
CHAT_ID |
987654321 |
Your Telegram user ID |
GIST_ID |
abc123xyz... |
The Gist ID you got in step 2 |
GIST_TOKEN |
ghp_12345... |
The GitHub Token you got in step 3 |
BOLUM_TIPI |
GENEL |
Type GENEL for regular departments, TIP for Medicine, VET for Veterinary. |
After setting everything up, run the bot manually for the first time:
- Go to the Actions tab.
- Select the UBYS Bot Daily Run workflow on the left side.
- Press the Run workflow button on the right side.
🎉 Congratulations! Your bot is now set up. It will run automatically 4 times a day (09:00, 13:00, 17:00, 21:00).
Q: Is my password safe? A: Yes. Even if your GitHub Repo is "Public", no one else can see your passwords because you store them inside Secrets.
Q: Can my grades be seen by others? A: No. Since the Gist where your grades are saved is "Secret", no one without the direct link can access it.
Q: How often does the bot run? A: By default, it runs 4 times a day at 09:00, 13:00, 17:00, and 21:00 Turkish time.
If you notice a bug or have a feature request regarding the project, please open an Issue.
This project was developed entirely for educational purposes and is strictly for personal use.
The project has no official affiliation, collaboration, or connection with the Kastamonu University IT Department or any official unit of the university. The 100% accuracy of the data provided by the bot (exam dates, grades, etc.) is not guaranteed; it is the user's responsibility to follow official announcements.
Any technical and legal responsibility that may arise from the use of the software belongs entirely to the user.
Made with ❤️ by Yusuf Sami Turan
Bu proje, Kastamonu Üniversitesi öğrencileri için geliştirilmiş kapsamlı bir botdur.
Sürekli farklı sitelere (UBYS, SKS, Akademik Takvim) girip kontrol etmek yerine; bu bot GitHub Actions üzerinde (günde 4 kez) otomatik çalışır ve sizi ilgilendiren her gelişmeyi Telegram üzerinden anlık olarak telefonunuza gönderir.
- 🔐 Güvenli Veri: Notlarınız GitHub Secret Gist üzerinde şifreli tutulur. Sizden başka kimse göremez.
- ⚡ Anlık Bildirim: Yeni not girildiğinde (Vize, Final, Büt, Ödev) ders adı ve notuyla birlikte bildirim atar.
- 🧠 Hedef Hesaplama: Vize notunuz açıklandığında, dersi geçmek (CC) veya derece yapmak (AA) için finalden kaç almanız gerektiğini hesaplar.
- 🎓 GANO Takibi: Transkriptinizde GANO veya YANO değiştiğinde haber verir.
- ⏳ Geri Sayım: Vize, Final, Kayıt Haftası gibi önemli tarihlere 45 gün kala geri sayım sayacı başlatır.
- 🛡️ Bölüm Filtresi: Tıp veya Veterinerlik gibi sizi ilgilendirmeyen fakültelerin tarihlerini otomatik filtreler, sadece sizi ilgilendirenleri gösterir.
- 🥘 Günün Menüsü: Her sabah o gün yemekhanede ne çıkacağını (Çorba, Ana Yemek, Tatlı vb.) size raporlar.
- 💤 Hafta Sonu Modu: Hafta sonları yemekhane kapalı olduğu için boş yere bildirim atmaz.
Bu projeyi kendi hesabınızda çalıştırmak için aşağıdaki adımları sırasıyla uygulayın.
Sağ üst köşedeki Fork butonuna tıklayarak projeyi kendi GitHub hesabınıza kopyalayın.
- gist.github.com adresine gidin.
- Dosya adı kısmına
notlar.jsonyazın. - İçerik kısmına sadece iki süslü parantez koyun:
{} - Yeşil butondan "Create secret gist" seçeneğini seçip oluşturun.
- Tarayıcı adres çubuğundaki linkin sonundaki karmaşık kodu kopyalayın. (Bu sizin
GIST_IDniz olacak).
- GitHub'da Settings -> Developer Settings -> Personal access tokens -> Tokens (classic) yolunu izleyin.
- "Generate new token (classic)" diyerek yeni bir token oluşturun.
- İsim verin (Örn: UBYS Bot) ve izinlerden (Scopes) sadece
gistkutucuğunu işaretleyin. - En altta oluşturulan kodu kopyalayın. (Bu sizin
GIST_TOKENınız olacak).
- Telegram'da @BotFather'ı bulun ve
/newbotkomutu ile yeni bir bot oluşturun. Size vereceği API Token'ı kaydedin. - Telegram'da @userinfobot'u açıp
/startdiyerek kendi Chat ID'nizi öğrenin.
Botun çalışması için şifrelerinizi projeye tanıtmalısınız. Repo sayfanızda Settings > Secrets and variables > Actions kısmına gidin ve New repository secret diyerek şu değişkenleri ekleyin:
| Secret Adı | Değer (Örnek) | Açıklama |
|---|---|---|
OGRENCI_NO |
242609006 |
UBYS Öğrenci numaranız |
SIFRE |
sifreniz123 |
UBYS giriş şifreniz |
BOT_TOKEN |
123456:ABC... |
Telegram BotFather'dan alınan token |
CHAT_ID |
987654321 |
Telegram kullanıcı ID'niz |
GIST_ID |
abc123xyz... |
2. adımda aldığınız Gist ID |
GIST_TOKEN |
ghp_12345... |
3. adımda aldığınız GitHub Token |
BOLUM_TIPI |
GENEL |
Normal bölümler için GENEL, Tıp için TIP, Veterinerlik için VET yazın. |
Her şeyi ayarladıktan sonra botu ilk kez manuel çalıştırın:
- Actions sekmesine gidin.
- Sol taraftaki UBYS Bot Daily Run workflow'unu seçin.
- Sağ taraftaki Run workflow butonuna basın.
🎉 Tebrikler! Artık botunuz kuruldu. Günde 4 kez (09:00, 13:00, 17:00, 21:00) otomatik çalışacaktır.
S: Şifrem güvende mi? C: Evet. GitHub Reponuz "Public" olsa bile, şifrelerinizi Secrets içine girdiğiniz için sizden başka kimse göremez.
S: Notlarım başkaları tarafından görülebilir mi? C: Hayır. Notlarınızın kaydedildiği Gist "Secret" (Gizli) olduğu için linki bilmeyen kimse erişemez.
S: Bot ne sıklıkla çalışıyor? C: Varsayılan olarak Türkiye saatiyle 09:00, 13:00, 17:00 ve 21:00 olmak üzere günde 4 kez çalışır.
Proje ile ilgili bir hata fark ederseniz veya özellik isteğiniz varsa lütfen bir Issue açın.
Bu proje tamamen eğitim amaçlı geliştirilmiştir ve sadece kişisel kullanım içindir.
Projenin, Kastamonu Üniversitesi Bilgi İşlem Daire Başkanlığı veya üniversitenin herhangi bir resmi birimi ile hiçbir resmi bağı, iş birliği veya ilişiği yoktur. Botun sağladığı verilerin (sınav tarihleri, notlar vb.) %100 doğruluğu garanti edilmez; resmi duyuruları takip etmek kullanıcının sorumluluğundadır.
Yazılımın kullanımından doğabilecek her türlü teknik ve yasal sorumluluk tamamen kullanıcıya aittir.
Made with ❤️ by Yusuf Sami Turan