English: Discover, explore, and manage your favorite movies and TV shows with Aflami
ุงูุนุฑุจูุฉ: ุงูุชุดูุ ูุงุณุชูุดูุ ููุธู
ุฃููุงู
ู ูู
ุณูุณูุงุชู ุงูู
ูุถูุฉ ู
ุน ุฃููุงู
ู
โข ๐ Report Bug โข โจ Request Feature
- ๐ญ Comprehensive Entertainment Database - Browse thousands of movies and TV shows
- ๐ Advanced Search & Filtering - Find content by genre, year, rating, and more
- ๐ฑ Modern UI/UX - Beautiful Material Design interface with smooth animations
- ๐ฏ Personalized Experience - Create watchlists and manage your favorites
- ๐ Smart Home Screen - Curated recommendations and trending content
- ๐ Secure Authentication - Safe user account management
- ๐ฎ Fun Guessing Games - Interactive entertainment features
- ๐ Detailed Media Information - Comprehensive details about movies and shows
- ๐ Dark/Light Theme Support - Comfortable viewing in any environment
- ๐ฑ Responsive Design - Optimized for all screen sizes
- ๐ Language Support - Available in English and Arabic
| Light Mode ( click on gif for high quality video ) | Dark Mode ( click on gif for high quality video ) |
|---|---|
![]() |
![]() |
Before setting up the Aflami project, ensure you have the following installed:
- Android Studio Arctic Fox or later
- JDK 11 or higher
- Kotlin 1.8.0+
- Git (for cloning the repository)
- Minimum SDK: Android 24 (Android 7.0)
- Target SDK: Latest available
- Build Tools: Latest version
git clone https://github.com/Paris-Squad-S2/Aflami.git
cd AflamiCreate a local.properties file in the root directory of the project:
# API Configuration
API_TOKEN=your_tmdb_api_key_here
# Keystore Configuration (for release builds)
KEYSTORE_PATH=path/to/your/keystore.jks
KEYSTORE_PASSWORD=your_keystore_password
KEY_ALIAS=your_key_alias
KEY_PASSWORD=your_key_password- Visit The Movie Database (TMDB)
- Create a free account
- Go to Settings > API
- Request an API key
- Use the API key in your
local.propertiesfile
- Launch Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned Aflami directory
- Click "OK" to open the project
- Android Studio will automatically prompt to sync the project
- If not, click "Sync Now" in the notification bar
- Wait for the Gradle sync to complete
- Resolve any dependency conflicts if they arise
- Connect an Android device or start an emulator
- Select your target device from the device dropdown
- Click the "Run" button (green play icon)
- The app will build and install on your device
Problem: App crashes or shows no data
Solution: Verify your TMDB API key is correctly added to local.properties
Problem: Gradle sync or build fails
Solutions:
- Clean and rebuild:
Build > Clean ProjectthenBuild > Rebuild Project - Invalidate caches:
File > Invalidate Caches and Restart - Check internet connection for dependency downloads
Problem: Import errors or missing classes
Solution: Ensure all required SDK components are installed via SDK Manager
Problem: Cannot build release APK
Solution: Create a keystore file or use debug keystore for testing
Aflami is modularized by feature using Clean Architecture and MVVM. Each module is independent yet integrates via DI.
Aflami/
โโโ ๐ฑ app/
โ โโโ ๐ฏ di/ # Dependency Injection (Hilt setup)
โโโ ๐ ๏ธ buildSrc/ # Build configuration
โโโ ๐ datasource/
โ โโโ ๐ remote/ # Media, Guess Game, Lists, User
โ โโโ ๐พ local/ # Media, Guess Game, Lists, User
โโโ ๐จ designsystem/ # UI components and theming
โโโ ๐ฆ repository/ # Media, Guess Game, Lists, User
โโโ ๐ข domain/ # Media, Guess Game, Lists, User
โโโ ๐ฏ feature/
โ โโโ ๐ home/ # Home screen
โ โโโ ๐ฎ guessGame/ # Guessing game
โ โโโ ๐ lists/ # Watchlists
โ โโโ ๐ categories/ # Categories
โ โโโ ๐ search/ # Search
โ โโโ ๐ค user/ # User profile
โโโ ๐ผ๏ธ safeimageviewer/ # Hide sensitive content
โโโ ๐ logger/ # Firebase crash logging
- Language: Kotlin
- Architecture: Clean Architecture + MVVM
- Dependency Injection: Hilt
- Database: Room
- Networking: Retrofit
- Async Operations: Coroutines
- UI: Material Design Components
- Image Loading: (likely Glide/Coil)
- Navigation: Jetpack Navigation
- Lifecycle: Android Architecture Components
- Kotlin, Jetpack, Coroutines
- Hilt, Room, Retrofit
- Material Design, SafeImageViewer
- Use Android Studio's run button for immediate testing
- Debug builds don't require keystore configuration
- Perfect for development and testing
- Ensure keystore configuration is correct in
local.properties - Build via:
Build > Generate Signed Bundle/APK - Choose your keystore and credentials
The app supports both English and Arabic languages. The appropriate language will be selected based on your device's system language or can be changed within the app settings.
- Explore the codebase: Start with the
appmodule to understand the DI setup - Run the app: Test all features to ensure everything works
- Check the documentation: Review feature-specific README files in each module
- Set up Firebase (if needed): For crash logging and analytics
- Configure CI/CD: Set up automated builds and testing
| Name | GitHub |
|---|---|
| Mohamed Elhanafy | @Mohamed-Elhanafy |
| Mohammed Al-Akkad | @mohammed-akkad |
| Aziza Helmy | @AzizaHelmy |
| Haidy AbuGom3a | @HaidyAbuGom3a |
| Muhammed Wael | @MuhammedWael9991 |
| Mahmoud Abdelnaby | @M-Abdelnabi |
| Joseph Sameh Fouad | @Joseph-Sameh-0 |
| Ahmed Abdelnasser | @ahmedNaser7 |
| Renad Alalfy | @Renad-Alalfy |
| Zeinab | @Zeinab979 |
| Mustafa Ibrahim | @MustafaIbrahim96 |
| Dina Othman | @DinaOthman21 |
| Ahmed Salah | @itsahmedsalah |
| asmaa karam | @Asmaa7071 |
| Islam Magdy | @IslamMagd |
| Yousef Osama Kamal | @yousef-osama11 |
- Fork the repo.
- Create a branch (
git checkout -b feature/name). - Submit a PR.
If you encounter issues during setup:
- Check Issues: Visit the GitHub Issues page
- Create New Issue: If your problem isn't listed, create a new issue with:
- Your development environment details
- Error messages or logs
- Steps to reproduce the problem
- Contact Team: Reach out to the development team for assistance

