How abdulrhmanbadwy/studex_app works
Studex is a Flutter study companion for students and teachers. The main workflow is account access, finding or creating a study room, collaborating through room chat, and taking room quizzes; quiz results support room leaderboards, while teachers can view a monitoring dashboard. The app also provides onboarding, home navigation, profile and settings, localization, and offline awareness. The README describes the quiz module as Clean Architecture and other features as repository-based. Source excerpts do not show Dart call sites, so edges below rely on documented relationships; uncertain implementation links are omitted.
Main entry points: chat_repository.dart Chat repository · screens Quiz screens · auth_bloc.dart Auth state · auth Auth screens
Components 23
App experience
- Onboarding
studex_graduation_project/lib/features/onboarding/on_boarding.dart - Auth screens
studex_graduation_project/lib/features/auth - Home dashboard
studex_graduation_project/lib/features/homescreen/home_screen.dart - Monitoring dashboard
studex_graduation_project/lib/features/monitoringPanel/dashboard_screen.dart - Settings and profile
studex_graduation_project/lib/features/settings/screens/settings_screen.dart
Study collaboration
- Room discovery
studex_graduation_project/lib/features/rooms/screens/rooms_list.dart - Room creation
studex_graduation_project/lib/features/rooms/screens/create_room.dart - Room repository
studex_graduation_project/lib/repositories/room_repository.dart - Room chat
studex_graduation_project/lib/features/chat/presentation/screens/chat_screen.dart - Chat repository
studex_graduation_project/lib/repositories/chat_repository.dart
Quiz lifecycle
- Quiz screens
studex_graduation_project/lib/features/quiz/presentation/screens - Quiz Cubits
studex_graduation_project/lib/features/quiz/presentation/cubits - Quiz use cases
studex_graduation_project/lib/features/quiz/domain/use_cases - Quiz repository
studex_graduation_project/lib/features/quiz/data/repositories/quiz_repository_impl.dart - Quiz data source
studex_graduation_project/lib/features/quiz/data/data_source/quiz_remote_data_source_impl.dart - Leaderboard
studex_graduation_project/lib/features/quiz/presentation/screens/leaderboard_screen.dart
Identity and data
- Auth state
studex_graduation_project/lib/blocs/auth/auth_bloc.dart - Auth service
studex_graduation_project/lib/core/services/auth_service.dart - Auth repository
studex_graduation_project/lib/repositories/auth_repository.dart - Cloud Firestore
- Firebase Authentication
Other components
- Student
- Teacher
Connections 27
- Student → Onboarding: starts with
README.md - Onboarding → Auth screens: continues to
README.md - Student → Auth screens: signs in
README.md - Auth screens → Auth state: managed by
README.md - Auth state → Auth service: uses session stream
README.md - Auth state → Auth repository: consumes
README.md - Auth service → Firebase Authentication: authenticates
README.md - Student → Home dashboard: opens
README.md - Home dashboard → Room discovery: browses rooms
README.md - Student → Room creation: creates room
README.md - Room discovery → Room repository: uses
README.md - Room creation → Room repository: uses
README.md - Student → Room chat: chats in room
README.md - Room chat → Chat repository: uses
README.md - Chat repository → Cloud Firestore: streams messages
README.md - Student → Quiz screens: creates or takes
README.md - Quiz screens → Quiz Cubits: state via
README.md - Quiz Cubits → Quiz use cases: invokes
README.md - Quiz use cases → Quiz repository: uses
README.md - Quiz repository → Quiz data source: delegates to
README.md - Quiz data source → Cloud Firestore: accesses data
README.md - Quiz screens → Leaderboard: shows rankings
README.md - Student → Leaderboard: compares scores
README.md - Teacher → Monitoring dashboard: reviews progress
README.md - Student → Settings and profile: manages profile
README.md - Room repository → Cloud Firestore: uses backend
- Chat repository → Cloud Firestore: stores messages
README.md