No description
  • Python 55.8%
  • Go 22.8%
  • TypeScript 8.4%
  • CSS 5.1%
  • HTML 4.7%
  • Other 3.2%
Find a file
2026-07-01 11:13:47 +02:00
.github/workflows Update go workflow 2026-06-28 16:29:47 +02:00
.idea changed ide 2026-07-01 11:13:47 +02:00
apps Changed hint for onboarding 2026-07-01 11:08:25 +02:00
shared feat: monorepo restructure with Go/Wails app alongside Python 2026-06-28 14:29:05 +02:00
.gitignore feat: monorepo restructure with Go/Wails app alongside Python 2026-06-28 14:29:05 +02:00
README.md feat: monorepo restructure with Go/Wails app alongside Python 2026-06-28 14:29:05 +02:00

WhatsApp Inviter

Een gebruiksvriendelijke app om ingeschreven studenten uit te nodigen via WhatsApp. Ontwikkeld voor Bio-informatica en Biomedis aan de Hogeschool Leiden.

Dit is een monorepo met twee implementaties:

App Pad Stack Status
Python (legacy) apps/python/ customtkinter + pywhatkit Stabiel, PyInstaller .exe
Go (nieuw) apps/go/ Wails + whatsmeow + excelize Native binary, geen browser

Gedeelde assets staan in shared/assets/.


Snel starten

Python-versie (bestaand)

cd apps/python
python -m venv venv
venv\Scripts\activate        # Windows
pip install -r requirements.txt
python app.py

Build: build.bat (Windows) of build_mac.sh (macOS) vanuit apps/python/.

Go-versie (nieuw)

Vereist Go 1.22+ en Wails v2.

cd apps/go
go mod tidy
wails dev          # ontwikkeling
wails build        # productie-binary

Build-scripts: build.bat / build_mac.sh vanuit apps/go/.

Output: apps/go/build/bin/WhatsAppInviter.exe (Windows) of .app (macOS).


Verschil tussen de twee apps

Python Go
WhatsApp Browser-automatisering (WhatsApp Web + Chrome) Direct via WhatsApp multi-device protocol (QR-koppeling)
Binary-grootte ~4080 MB (PyInstaller) ~1525 MB (native)
Browser nodig Ja Nee
Excel openpyxl excelize
Instellingen %APPDATA%\WhatsAppInviter\settings.json Zelfde pad (gedeeld)

Gebruikersdocumentatie

Zie shared/docs/python.md voor de volledige handleiding (Excel-formaat, placeholders, checkbox-kolom, etc.). De Go-app volgt dezelfde workflow (3 stappen: Importeren → Bericht → Versturen).

Go-versie: WhatsApp koppelen

  1. Start de app
  2. Ga naar Versturen
  3. Klik QR-code tonen
  4. Scan met WhatsApp op je telefoon (Instellingen → Gekoppelde apparaten)
  5. Sessie blijft bewaard; volgende keer hoef je niet opnieuw te scannen

Projectstructuur

apps/
  python/          # customtkinter GUI + pywhatkit sender
  go/              # Wails GUI + whatsmeow sender
shared/
  assets/          # default_message.txt
  docs/            # gebruikers- en ontwikkelaarsdocs
.github/workflows/ # CI builds voor beide apps

CI / Releases

GitHub Actions bouwt bij push naar master/main en op tags (v*) beide apps voor Windows en macOS. Artifacts staan onder Actions; releases bevatten alle vier binaries.


Bekende beperkingen

  • whatsmeow is een unofficial WhatsApp client library (zelfde grijze zone als pywhatkit, maar betrouwbaarder dan browser-automatisering).
  • WhatsApp kan bulk-berichten beperken; gebruik Bevestig na elk bericht voor controle.
  • Alleen .xlsx wordt ondersteund.