Een gebruiksvriendelijke Windows-app om ingeschreven studenten uit te nodigen via WhatsApp. Ontwikkeld voor Bio-informatica en Biomedis aan de Hogeschool Leiden.
- Windows 10 of 11
- Google Chrome of Microsoft Edge (voor WhatsApp Web)
- Een WhatsApp-account op je telefoon
- Een Excel-bestand (
.xlsx) met telefoonnummers
Download vanuit de laatste releases Latest release WhatsAppInviter.exe voor Windows of .zip voor macOS-gebruikers
Dubbelklik om te starten.
Windows SmartScreen-waarschuwing: Omdat het programma niet digitaal ondertekend is, kan Windows vragen "Windows heeft je pc beschermd". Klik op Meer info en dan Toch uitvoeren. Dit is normaal voor interne tools.
- Open Chrome
- Ga naar web.whatsapp.com
- Scan de QR-code met je telefoon
- Laat de browser open (of zorg dat je de volgende keer weer ingelogd bent)
- Start
WhatsAppInviter.exe - Kies Excel-bestand – selecteer je
.xlsxexport met studententelefoonnummers - Kies werkblad – als het bestand meerdere tabbladen heeft kies het juiste sheet
- Controleer kolommen – de telefoonkolom wordt automatisch herkend; pas aan indien nodig
- Pas het bericht aan – bewerk de uitnodigingstekst naar wens. Gebruik
{voornaam}of{naam}om het bericht per student te personaliseren; onder het tekstvak zie je live een voorbeeld. - Klik Opslaan als standaard om je bericht en instellingen te bewaren voor volgende keren
- Optioneel: Start vanaf een andere rij als je met andere SA's de studenten heb verdeeld. (of later verder gaat)
- Klik Start versturen
- De app opent WhatsApp Web per student en verstuurt het bericht
- Met Bevestig na elk bericht aan: klik Volgende om door te gaan, of Stop om te stoppen
- Na afloop kun je met Exporteer rapport een CSV opslaan met wie er is aangeschreven (verzonden/mislukt).
Thema: rechtsboven kun je wisselen tussen Licht, Donker en Systeem. Je keuze wordt bewaard via Opslaan als standaard.
Beweging: onder Opties op het versturen-tabblad kun je Verminder beweging inschakelen. De app volgt standaard de Windows-toegankelijkheidsinstelling en slaat je keuze op via Opslaan als standaard.
Heb je in je Excel een kolom als "Bericht verzonden" (bijvoorbeeld met Excel-vinkjes / checkboxes, die TRUE/FALSE opslaan)? Dan kun je die gebruiken:
- Kies bij Kolommen de Verzonden-kolom (wordt automatisch herkend op namen als bericht verzonden, verstuurd, uitgenodigd, sent).
- Sla al verzonden over (aan): rijen die al aangevinkt zijn (
TRUE/ja/x/1) worden niet opnieuw aangeschreven. Het aantal "nog te versturen" zie je direct. - Vink af in Excel na verzenden (aan): na afloop zet de app de checkbox op
TRUEvoor iedereen die zojuist een bericht kreeg, zodat je de volgende keer verder kunt waar je was.
Sluit het Excel-bestand in Excel voordat je verstuurt; anders kan de app de vinkjes niet terugschrijven (het bestand is dan vergrendeld). De app waarschuwt je in dat geval.
| Placeholder | Wordt vervangen door |
|---|---|
{voornaam} |
De voornaam van de student (eerste woord van de naam) |
{naam} |
De volledige naam zoals in de naamkolom |
Heeft een rij geen naam, dan wordt "student" ingevuld. Werkt hoofdletterongevoelig ({Voornaam} mag ook).
- Bestandstype:
.xlsx(Excel) - De app zoekt automatisch de tabelkop (hoef niet in cel A1 te staan)
- Kolom met telefoonnummers wordt herkend op namen zoals: Mobiel telefoonnummer, telefoon, gsm, phone
- Nederlandse nummers (
06-…of0612345678) worden automatisch omgezet naar+31…
Je bericht, landcode, kolomkeuzes en voorkeuren (thema, beweging) worden opgeslagen in:
%APPDATA%\WhatsAppInviter\settings.json
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.pyDubbelklik op build.bat of voer uit in de projectmap:
build.batOutput: dist\WhatsAppInviter.exe
De build-script:
- Maakt een virtual environment aan
- Installeert alle dependencies
- Bouwt één standalone
.exemet PyInstaller
PyInstaller kan niet cross-compileren. Een macOS-build moet op een Mac gebeuren (niet op Windows).
Op een Mac, in de projectmap:
chmod +x build_mac.sh
./build_mac.shOutput: dist/WhatsAppInviter.app
Distribueren als zip:
ditto -c -k --keepParent dist/WhatsAppInviter.app dist/WhatsAppInviter-mac.zipmacOS-aandachtspunten:
- Gatekeeper: ongetekende apps geven "kan niet worden geopend omdat het van een niet-geïdentificeerde ontwikkelaar is". Eerste keer: rechtsklik op de app → Open → Open. (Officieel ondertekenen vereist een Apple Developer-account; buiten scope.)
- Rechten: macOS vraagt om Toegankelijkheid en Schermopname (Systeeminstellingen → Privacy en beveiliging), omdat de app de browser bestuurt.
- De build is voor de architectuur van de Mac waarop je bouwt (Apple Silicon arm64 of Intel x86_64).
Het project bevat een workflow (.github/workflows/build.yml) die bij elke push naar master/main automatisch zowel de Windows .exe als de macOS .app bouwt:
- Resultaten staan onder het Actions-tabblad, de betreffende run Artifacts.
- Bij het pushen van een versietag (bijv.
v1.0.0) wordt automatisch een GitHub Release aangemaakt met beide bestanden eraan gekoppeld
app.py # GUI (customtkinter)
core/
excel_loader.py # Excel inlezen, kolommen detecteren
phone.py # Telefoonnummer normalisatie
message.py # Berichtpersonalisatie ({voornaam}/{naam})
sender.py # WhatsApp versturen via pywhatkit
settings.py # Instellingen opslaan in AppData (incl. thema & beweging)
report.py # CSV-rapport van verzendresultaten
assets/
default_message.txt # Standaard uitnodigingstekst
build.bat # Eén-klik build (Windows)
build_mac.sh # Eén-klik build (macOS)
app.spec # PyInstaller configuratie (Windows + macOS)
.github/workflows/build.yml # Automatische builds (Windows + macOS)
requirements.txt
- Berichten worden verstuurd via WhatsApp Web automatisering (zelfde methode als het oude script). Dit vereist een ingelogde browsersessie en kan af en toe traag of gevoelig zijn voor browser-updates.
- WhatsApp kan bulk-berichten beperken; gebruik Bevestig na elk bericht voor controle.
- Alleen
.xlsxwordt ondersteund (geen.csvin de GUI; het oudemain.pyondersteunt nog wel CSV).
Het oude script is te vinden in de SA teams map van BI
Gebruik app.py / WhatsAppInviter.exe voor dagelijks gebruik.