Jak to funguje?
MabMess je moderní, bezpečná a multiplatformní komunikační platforma postavená na frameworku Flutter. Cílem projektu je poskytnout uživateli naprosté soukromí díky end-to-end šifrování (E2EE) a zároveň nabídnout pokročilé funkce, ovšem s důrazem na čistotu kódu a vlastní kontrolu nad daty.
1. Architektura systému
Klientská část (Frontend)
- Framework: Flutter (Dart) — Android, iOS, Windows.
- State Management: Riverpod 2.x
- Lokální databáze: Drift (SQLite)
- Komunikace: WebSocket (Socket.io) + HTTPS (Dio)
Serverová část (Backend)
- Runtime: Node.js
- Databáze: MySQL
- Real-time engine: Socket.io
- File Storage: dočasné úložiště médií s automatickým mazáním po doručení.
2. Bezpečnost a šifrování (E2EE)
Na rozdíl od běžných aplikací MabMess nepoužívá šifrování pouze na cestě k serveru, ale přímo mezi koncovými zařízeními.
- Výměna klíčů: ECDH nad křivkou X25519.
- Symetrické šifrování: AES-256-GCM, unikátní klíč pro každou zprávu.
- Identita: pár EC klíčů na zařízení; při párování desktopu se identita přenáší z telefonu přes jednorázový šifrovaný kanál.
- Safety Numbers: ověření identity kontaktu číselným otiskem klíče.
3. Klíčové funkce aplikace
Real-time messaging
- Stavy doručení: Čeká se → Odesláno → Doručeno → Přečteno.
- Indikátory psaní v reálném čase, včetně skupin.
- Editace i „Smazat pro všechny“ (fyzické odstranění dat u všech příjemců).
- Reakce na zprávy pomocí emoji.
Multimédia a soubory
- Automatická komprese fotek/videí (limit až 75 MB).
- Audio zprávy s vizualizací waveformy.
- Galerie médií v karuselu i celoobrazovkovém prohlížeči.
- Podpora PDF a ZIP s integrovaným prohlížečem.
Pokročilé typy zpráv
- Sdílení GPS polohy s adresou a otevřením v externích mapách.
- Ankety v 1v1 i skupinových chatech s real-time výsledky.
- Události — návrh termínu a hlasování o datu.
4. Multiplatformní synchronizace
MabMess udržuje všechna zařízení v souladu bez centrálního cloudu.
Párování přes QR kód: výměna veřejných klíčů, zašifrování identity telefonu klíčem z QR kódu a bezpečný přenos historie a kontaktů.
Automatický Sync (Peer-to-Peer): jakmile jsou dvě zařízení online, spustí se ChatSyncService — nejprve texty, poté média na pozadí, s prioritizací nejnovějších zpráv.
5. Logika serveru (Backend)
Server MabMess funguje jako „inteligentní pošťák“, nikoliv jako archivář.
- Temporary Buffering: offline zprávy se uloží do fronty a po doručení okamžitě smažou.
- Privacy First: server nikdy nevidí obsah 1v1 zpráv, pouze metadata nutná pro doručení.
- Self-Cleanup: nahraná média se uchovávají jen po dobu nutnou k doručení (standardně 60 s po potvrzení).
- Push brána: integrace s Firebase Cloud Messaging (FCM).
6. Integrace a UX vychytávky
- Vlastní bezpečná klávesnice, která neposílá data výrobcům OS.
- Biometrické zabezpečení (otisk prstu / Face ID).
- Možnost zákazu snímků obrazovky v celé aplikaci.
- Adaptivní design od malých telefonů po širokoúhlé monitory.
- Tray integrace na Windows — minimalizace do systémové lišty.
7. Systém aktualizací
- Android: kontrola version.txt na serveru, stažení APK přímo v aplikaci a nabídka instalace.
- Windows: stažení instalačního balíčku .exe, korektní ukončení a spuštění instalátoru pro přepsání souborů.
Tento systém je navržen tak, aby poskytoval maximální komfort moderního chatu bez kompromisů v oblasti soukromí. Všechna data patří uživateli a server slouží pouze jako dočasný prostředník pro jejich přenos.
Zpět na MabMess