Skip to content

MohammedAlaaMorsi/Github-Followy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Followy

A Kotlin Multiplatform app that helps you manage your GitHub followers across Android, iOS, Desktop, and Web platforms.

Platform Kotlin Compose

✨ Features

✅ Implemented

  • 🔐 GitHub OAuth 2.0 - Secure, modern web-based authentication flow
  • 🌐 Web Target (Wasm) - Fully functional Web version using Compose for Web (WebAssembly)
  • 🔒 AES-256 Encryption - Tokens encrypted with platform-native security (EncryptedSharedPreferences on Android, Keychain on iOS)
  • 👥 Follower Analysis - See who follows you but you don't follow back
  • 🔄 Following Analysis - See who you follow but they don't follow back
  • Follow Users - Follow users directly from the app
  • Unfollow Users - Unfollow users with a single tap
  • 🔄 Real-time Updates - UI updates instantly after actions
  • 📱 Cross-Platform - Shared UI and logic across Android, iOS, Desktop, and Web
  • 🎨 Modern UI - Built with Compose Multiplatform 1.7.3 and Material 3
  • 🛡️ Security First - No hardcoded secrets; dynamic configuration loading
  • 🚀 Splash Screen - Native Android 12+ splash screen with custom icon
  • 🔄 Pull-to-Refresh - Material 3 pull-to-refresh on user lists
  • ⚙️ Settings Screen - Dedicated settings page with app version and logout
  • 🧭 Type-Safe Navigation - Shared navigation logic across all targets
  • 👤 User Profile Screen - View detailed profiles and toggle follow status

📸 Screenshots

Platform Screenshot Description
🌐 Web Web Dashboard High-performance Wasm-based web dashboard
📱 Mobile Login Screen Modern login screen with OAuth authentication
Dashboard Three-tab dashboard showing follower comparisons

🚀 Quick Start

Prerequisites

  • JDK 17 or higher
  • Android Studio or IntelliJ IDEA
  • GitHub OAuth App (Create one here)
    • Homepage URL: http://localhost:8080
    • Callback URL: http://localhost:8080

Building & Running

🤖 Android

./gradlew :androidApp:installDebug

🖥️ Desktop

./gradlew :desktopApp:run

🌐 Web (Wasm)

The Web version uses a built-in proxy to handle GitHub's CORS restrictions during development.

./gradlew :webApp:wasmJsBrowserDevelopmentRun

Access the app at http://localhost:8080.

🏗️ Architecture

The app follows Clean Architecture principles:

  • Shared Module: Contains 100% of the UI (Compose) and Business Logic.
  • Web module: Specific entry point for WebAssembly target.
  • Data Layer: Ktor for networking, Ktor-Network-Coil for images.
  • OAuth Provider: Decoupled interface for providing credentials at runtime without hardcoding.

🔒 Configuration (Web)

For the Web version, secrets are loaded dynamically from the index.html to avoid including them in the compiled Wasm binary.

Update webApp/src/wasmJsMain/resources/index.html:

<script type="text/javascript">
    window.clientId = "YOUR_CLIENT_ID";
    window.clientSecret = "YOUR_CLIENT_SECRET";
</script>

🔮 Future Development & Enhancements

🎨 UI & UX

  • 🌓 Dark/Light Theme Support - Dynamic theme switching
  • 🌍 Multi-Language Support - Support for multiple locales
  • 🌐 PWA Support - Make the Web version installable as a Progressive Web App
  • 🎯 Custom Widgets - Android/iOS home screen widgets for follow stats

⚙️ Features

  • 🗄️ Local Caching - Use SQLDelight for offline access to user lists
  • 📬 Daily Notifications - Background check for new followers/unfollowers
  • 🔍 Advanced Filtering - Search and filter users by account age, repository count, etc.
  • 📂 Groupings - Tag users into custom groups (e.g., "Work", "Community")
  • 📊 Insights Dashboard - Visual charts for follower growth over time
  • 📥 Export Data - Export follower/following lists to CSV or JSON

🛡️ Core Improvements

  • 📅 Scheduled Actions - Queue follow/unfollow tasks to respect GitHub rate limits
  • 🚫 Block Management - Manage blocks directly from the app
  • 🔄 Auto-Cleanup - Automatically suggest unfollowing inactive accounts
  • 🛡️ Enhanced Security - Biometric lock (Fingerprint/FaceID) for mobile apps

📚 Documentation

📄 License

MIT License

About

Manage your GitHub followers across Android, iOS, Desktop, and Web platforms.

Topics

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Generated from AdamMc331/CMPTemplate