A cross-platform Flutter application for secure communication and modern cryptography. Designed as a graduation project in Cybersecurity at Tafila Technical University.
🧪 Graduation Project by
Osama Wesam Jaradat @Oso00Luffy
Moath Amjad Hdairis @moathhdairis Supervisor: Dr. Eman
- Project Objectives
- Tech Stack
- Features
- Screenshots
- Project Structure
- Getting Started
- Educational Value
- To-Do
- License
- Links
- Star History
- Enable secure encryption/decryption of messages and images
- Support steganography for hiding messages in images or text
- Peer-to-peer secure chat system (local network/Bluetooth)
- Expiry for encrypted content and messages
- Modular, privacy-focused architecture for cybersecurity education
| Layer | Technology |
|---|---|
| Language | Dart |
| Framework | Flutter |
| Cryptography | AES, RSA (via PointyCastle) |
| Steganography | Zero-width encoding, homoglyphs, whitespace |
| Communication | Local LAN/Bluetooth P2P |
| Platform | Android (Flutter) |
Other notable tech:
- Firebase (App Check, Auth for login)
- Provider for state management
- C++/CMake/Swift for low-level extensions (minor)
- Shared Preferences for local, secure storage
- Text: AES and RSA encryption/decryption
- Images: Hide and extract messages securely
- Offline: All cryptographic processing is local
- Hide encrypted text in PNG/JPG images
- Extract hidden messages from steganographic images
- Multiple techniques: homoglyph, zero-width, whitespace
- Peer-to-peer local communication (LAN/Bluetooth)
- End-to-end encrypted messages
- Expiry timer for sensitive chats
- Self-destructing (time-bound) messages
- Secure session management & auto-logout
- Multiple custom themes: AMOLED, Blue, Sepia, Gold & Purple, Pink & Blue-Gray, System, Light/Dark
- Theme persistence across sessions
- Modern, responsive UI
- Theme selector
- About and privacy information
- Session and security options
lib/
├── main.dart
├── constant/
│ └── colour_screen.dart
├── models/
│ └── message.dart
├── screens/
│ ├── auth_gate.dart
│ ├── chat_room_screen.dart
│ ├── decrypt_image_screen.dart
│ ├── decrypt_message_screen.dart
│ ├── encrypt_image_screen.dart
│ ├── encrypt_message_screen.dart
│ ├── file_sender_screen.dart
│ ├── firebase_options.dart
│ ├── home_screen.dart
│ ├── intro_screen.dart
│ ├── login_screen.dart
│ ├── profile_screen.dart
│ ├── settings_screen.dart
│ └── ...
├── services/
│ ├── chat_room_service.dart
│ ├── chat_service.dart
│ ├── decryption_service.dart
│ ├── encryption_service.dart
│ ├── file_transfer_service.dart
│ ├── image_encryption_service.dart
│ ├── malware_check_service.dart
│ ├── message_encryption_service.dart
│ ├── recent_keys_service.dart
│ ├── user_service.dart
│ └── ...
├── theme/
│ └── theme_provider.dart
├── utils/
│ └── crypto_service.dart
├── widgets/
│ ├── gradient_background.dart
│ ├── custom_button.dart
│ ├── custom_text_field.dart
│ ├── message_list.dart
│ ├── outlined_text.dart
│ ├── profile_keys_section.dart
│ ├── show_more_text.dart
│ └── ...
For a full, up-to-date structure, browse the lib/ directory.
- Flutter SDK (v3.0+)
- Dart (2.17+)
- Android Studio or VS Code
- Android device or emulator
git clone https://github.com/Oso00Luffy/Graduation_Project.git
cd Graduation_Project
flutter pub get
flutter run- Place your
firebase_options.dartinlib/screens/(see FlutterFire docs) - Enable App Check, Authentication, etc. in Firebase console
- Hands-on use of cryptographic algorithms
- Steganography techniques in mobile apps
- Peer-to-peer communication without internet
- Secure session management and lifecycle awareness
- UI polish and animations
- QR-code export for encrypted messages
- Optional backup via Firebase
- Biometric authentication for login
- Additional steganographic techniques
This project is for academic/graduation purposes and is not licensed for commercial use.



