Masroufi
Eine vollständige mobile Recruiting-Plattform, die Bewerber, Recruiter und Admins verbindet: entwickelt mit Flutter und Clean Architecture.
Eine vollständige mobile Recruiting-Plattform mit Flutter, Clean Architecture und BLoC, die drei verschiedene Benutzerrollen unterstützt.
Masroufi ist eine umfassende mobile Recruiting-Plattform, die mit Flutter entwickelt wurde und drei verschiedene Benutzerrollen im selben System unterstützt: Bewerber, Recruiter und Administratoren.
Bewerber können Stellen durchsuchen, suchen, filtern, speichern und sich bewerben. Mit einem vollständigen Bewerbungs-Tracking-Dashboard mit den Status Ausstehend, Angenommen und Abgelehnt. Recruiter verwalten ihre Stellenangebote und prüfen Bewerberprofile. Admins haben ein systemweites Verwaltungspanel.
Das Projekt verwendet Flutter-Architekturmuster auf Produktionsniveau: Clean Architecture mit funktionsbasierter modularer Struktur, BLoC/Cubit für skalierbares State Management und JWT-Authentifizierung mit automatischer Token-Aktualisierung über Dio-Interceptoren.
Hauptfunktionen
Drei-Rollen-System
Eigenständige Erlebnisse für Bewerber, Recruiter und Admins: jeweils mit eigenen Dashboards, Berechtigungen und Navigationsflüssen.
Bewerbungs-Tracking
Bewerber verfolgen jede Bewerbung in Echtzeit mit Statusupdates (Ausstehend, Angenommen, Abgelehnt) und Recruiter-Feedback.
Sichere JWT-Authentifizierung
Automatische Token-Aktualisierung über Dio-Interceptoren mit sicherer Speicherung via FlutterSecureStorage: nie in SharedPreferences.
Offline-Caching mit Hive
Hive-lokaler Cache hält die App auch bei schlechter Konnektivität funktionsfähig und reduziert unnötige API-Aufrufe.
Echtzeit-Recruiter-Chat
WebSocket-basierter Nachrichtenkanal zwischen Recruitern und Bewerbern für direkte In-App-Kommunikation.
Tech-Stack
Architektur
Die App folgt Clean Architecture mit drei Schichten: Data, Domain und Presentation. Features sind vollständig modular: jedes Feature ist ein eigenständiger Ordner mit eigenen Schichten.
JWT-Tokens werden über einen Dio-Interceptor verwaltet, der 401-Antworten automatisch erkennt und die ursprüngliche Anfrage nach einem Refresh erneut sendet. Sichere Tokens werden mit FlutterSecureStorage gespeichert.
Herausforderungen & Lösungen
Die schwierigen Probleme, und wie ich sie gelöst habe.
Drei Rollen ohne Komplexitätsexplosion verwalten
JWT-Refresh Race Conditions bei gleichzeitigen Anfragen
Cross-Feature-Zustandssynchronisation ohne enge Kopplung
Weitere Projekte
Interesse an einer Zusammenarbeit?
Ich bin immer offen für Gespräche über neue Projekte und Möglichkeiten.