Skip to content

Abanoub-Nagy/Aflami

 
 

Repository files navigation

StandWithPalestine

UI Language Platform Architecture

🎬 Aflami App

Welcome to Aflami, an Android application built to explore and display movie and TV show content powered by TMDB API.
This project is designed following Clean Architecture and modularized by component, ensuring scalability, maintainability, and high code quality.

Features

🔻OnBoarding

WELCOME ABOARD!.. LEARN ABOUT THE APP'S KEY FEATURES AND GET READY TO EXPLORE MOVIES EFFORTLESSLY

onboardingScreens
  • Introduces the app’s key features

  • Simple visuals to guide new users

  • Clear buttons for next or skip


🔻Login

CHOOSE YOUR WAY TO START.. SIGN IN FOR A PERSONALIZED JOURNEY OR EXPLORE AS A GUEST

loginScreen
  • Sign in with your account

  • Option to create a new account

  • Option if you forgot password

  • Guest mode available for quick access


🔻Home

DISCOVER TRENDING.. MOVIES AND TV SHOWS WITH A PERSONALIZED BROWSING EXPERIENCE

homeScreen
  • Displays the latest featured content

  • Quick access to movies and TV shows

  • Includes a search bar and navigation tabs


🔻Lists

SAVE YOUR FAVORITE MOVIES TO CUSTOM LISTS FOR QUICK ACCESS ANYTIME

listScreens
  • Save movies

  • Organize your lists your way

  • Easy access to saved content later


🔻Game

CHALLENGE YOURSELF WITH MULTIPLE FUN MODES TO GUESS MOVIES, CHARACTERS, AND GENRES AGAINST TIME.

gameScreen
  • Pick your favorite games easily and increase your points

  • Interactive and visually engaging experience

  • Quick details preview for each game


🔻Localizations

PICK YOUR LANGUAGE.. SPEAK THE APP IN YOUR OWN LANGUAGE WITH ONE SIMPLE TAP (RTL included)

LANGUAGE
  • Select your preferred app language

  • Supports multiple languages (e.g., English/Arabic)

  • Changes applied instantly across the app


    🔻Theme

Switch seamlessly.. between light and dark mode for a personalized experience

theming
  • Toggle between Light and Dark modes
  • Provides a personalized look and feel
  • Remembers your last selected theme automatically

Installation

Prerequisites
Before you begin, make sure you have the following installed:
- Android Studio (latest version) 
- Java Development Kit (JDK 17+)
- Gradle (comes with Android Studio)
- Android SDK with NDK installed

Follow these steps to set up and run the project locally:

1- Clone the repository

git clone https://github.com/team-berlin/Aflami.git

2- Open the project

Open the cloned project in Android Studio.

3- Configure local properties

In the project root, create or edit a file named local.properties, then add the following keys:

apiKey="YOUR_API_KEY"
baseUrl="https://api.themoviedb.org/3/"
baseImageUrl="https://image.tmdb.org/t/p/w500"
ndkDir="~/Library/Android/sdk/ndk"
movieSignUp="https://www.themoviedb.org/signup"
movieResetPassword="https://www.themoviedb.org/reset-password"

💡 How to get your apiKey:

  1. Sign up at The Movie Database (TMDB)
  2. Navigate to Settings → API in your TMDB account
  3. Generate an API Key and paste it in place of YOUR_API_KEY

4. Build and Run

  1. Open the project in Android Studio
  2. Sync the project with Gradle files
  3. Build the project (Build > Make Project)
  4. Run on device or emulator (Run > Run 'app')

5. Running the App

  1. Enable USB debugging and connect your physical device
  2. Create an Android Virtual Device (AVD) with API level 24 or higher

Modularization

by_component

Tech Stack

Area Library
Language Kotlin
UI Framework Jetpack Compose
Networking Retrofit + OkHttp
Dependency Injection Dagger Hilt
Async/Coroutines Kotlin Coroutines
pagination Paging3
Local Caching Room
Image Loading Coil
Navigation Navigation-Compose
Testing JUnit, MockK

Firebase Integration

We’ve integrated:

  • Crashlytics
  • Analytics
  • Firebase App Distribution (via GitHub Actions)

CI/CD Pipeline

We use GitHub Actions for automated CI/CD:

  • CI: Build and test on pull requests to develop
  • CD: Auto-generate APK and upload to Firebase on merge to develop

Custom Image Viewer

We've built a reusable image viewer module:

  • Applies on-device blurring for inappropriate content
  • Designed to respect cultural sensitivities

📌 Notes

  • Codebase is clean, modular, and scalable
  • Follows SOLID principles and modern Android best practices
  • Tested and production-ready structure

Contributors

Made with ❤️ by Berlin squad

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%