Automated slot monitoring and booking for Ukrainian consular services (e-consul.gov.ua)
Автоматичний моніторинг та бронювання слотів на консульські послуги України (e-consul.gov.ua)
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Electron │────▶│ e-consul │────▶│ Telegram │
│ Desktop │◀────│ API │ │ Bot │
│ App │ │ │ │ │
└──────┬───────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────┐
│ BankID │
│ Auth │
└──────────┘
cd electron
npm install
npm run dev
cd electron
npm run build
# Output: electron/release/
Push a tag or trigger manually:
git tag v1.0.0
git push origin --tags
Builds .dmg (macOS), .exe (Windows), .AppImage (Linux) automatically.
| Layer | Technology |
|---|---|
| Desktop | Electron 28 |
| UI | React 18 + Tailwind CSS |
| Build | Vite + electron-builder |
| API | e-consul.gov.ua REST API |
| Auth | BankID via id.gov.ua |
| Notifications | Telegram Bot API |
| CI/CD | GitHub Actions |
electron/
├── main.js # Electron main process
├── preload.js # IPC bridge
├── src/
│ ├── App.jsx # Root component
│ ├── screens/
│ │ ├── MainScreen.jsx # Monitor + mode switcher
│ │ ├── UserFormScreen.jsx # Personal data & consulate
│ │ └── SettingsScreen.jsx # Telegram & auth config
│ ├── components/
│ │ ├── LogPanel.jsx # Real-time log viewer
│ │ └── StatusBadge.jsx # Status indicator
│ ├── lib/
│ │ ├── eQueueApi.js # e-consul API client
│ │ ├── slotMonitor.js # Slot monitoring engine
│ │ ├── slotCalculator.js # Free slot calculation
│ │ ├── bookingService.js # API-based booking (4 phases)
│ │ ├── bookingEngine.js # BankID auth flow
│ │ ├── telegramNotifier.js # Telegram notifications
│ │ └── configStore.js # Persistent config
│ └── utils/
│ └── consulatesData.js # Static consulate directory
├── electron-builder.yml # Build config (mac/win/linux)
└── package.json
EN: This project is created for educational and research purposes only. It demonstrates Electron app architecture, API integration patterns, and browser automation techniques. The authors are not responsible for any misuse.
UA: Цей проєкт створено виключно в освітніх та дослідницьких цілях. Він демонструє архітектуру Electron додатків, патерни інтеграції з API та техніки браузерної автоматизації. Автори не несуть відповідальності за будь-яке неправомірне використання.
MIT