Skip to content

0x0Zeus/autohub-android

Repository files navigation

Auto Hub 🐱

A Modern Android GitHub Client for Managing Repositories, Profiles, and Trending Projects

Auto Hub is a comprehensive Android application that provides a beautiful and intuitive interface for managing GitHub accounts, exploring repositories, and staying updated with trending projects. Built with modern Android development practices and clean architecture principles.

✨ Features

🔐 Authentication & Profile Management

  • GitHub OAuth Integration - Secure login with GitHub accounts
  • Profile Management - View and manage user profiles, organizations
  • Offline Support - Access cached data without internet connection
  • Multi-account Support - Switch between different GitHub accounts

📱 Core Functionality

  • Repository Explorer - Browse, search, and manage repositories
  • Trending Repositories - Discover popular projects (Daily, Weekly, Monthly)
  • Starred Repositories - Quick access to your starred projects
  • Activity Feeds - Real-time updates on repository activities
  • Commit History - View detailed commit information and contributors
  • Repository Details - Comprehensive repository information including README, topics, and statistics

🎨 User Interface

  • Material Design - Modern, intuitive UI following Material Design guidelines
  • Dark/Light Themes - Customizable appearance
  • Responsive Layout - Optimized for different screen sizes
  • Smooth Animations - Fluid transitions and interactions
  • Bottom Navigation - Easy access to main features

🔧 Technical Features

  • Real-time Notifications - Firebase push notifications
  • Offline Caching - Realm database for local data storage
  • Search & Filter - Advanced filtering options for repositories and users
  • Multi-language Support - English and Arabic localization

🏗️ Architecture

Clean Architecture Implementation

📁 app/                    # Presentation Layer
├── 📁 fragments/         # UI Fragments
├── 📁 screen/           # Activities
├── 📁 adapters/         # RecyclerView Adapters
└── 📁 dialogs/          # Custom Dialogs

📁 data/                  # Data Layer
├── 📁 api/              # REST API Interfaces
├── 📁 repos/            # Repository Implementations
├── 📁 models/           # Data Models
└── 📁 oauth/            # Authentication Logic

📁 domain/                # Domain Layer
├── 📁 actions/          # Use Cases
├── 📁 models/           # Domain Models
└── 📁 state/            # State Management

Technology Stack

🎯 Core Technologies

  • Kotlin - Primary programming language
  • Android SDK - Target SDK 29, Min SDK 25
  • Gradle - Build automation and dependency management

🏛️ Architecture & Design Patterns

  • MVVM (Model-View-ViewModel) - Clean separation of concerns
  • Clean Architecture - Multi-modular structure
  • Repository Pattern - Data abstraction layer
  • Dependency Injection - Dagger 2, Koin, Motif

🌐 Networking & Data

  • Retrofit 2 - REST API communication
  • RxJava 2 - Reactive programming
  • Gson - JSON serialization/deserialization
  • Realm Database - Local data persistence
  • SharedPreferences - User preferences storage

🎨 UI/UX

  • Material Design Components - Modern UI components
  • Navigation Component - Fragment navigation
  • ViewPager2 - Tab-based navigation
  • RecyclerView - Efficient list rendering
  • ConstraintLayout - Flexible layouts

🔧 Development Tools

  • Kotlin Coroutines - Asynchronous programming
  • LiveData - Reactive data handling
  • Timber - Logging framework
  • LeakCanary - Memory leak detection
  • Firebase - Analytics and messaging

🚀 Getting Started

Prerequisites

  • Android Studio 4.0+
  • JDK 8 or higher
  • Android SDK 25+
  • GitHub OAuth App credentials

Installation

  1. Clone the repository

    git clone https://github.com/0x0zeus/autohub-android.git
    cd autohub-android
  2. Configure GitHub OAuth

    • Create a GitHub OAuth App in your GitHub settings
    • Update GithubClientID and GithubSecreteID in gradle.properties
  3. Build the project

    ./gradlew assembleDebug
  4. Install on device

    ./gradlew installDebug

Configuration

Required API Keys

Add the following to your gradle.properties:

GithubClientID=your_github_client_id
GithubSecreteID=your_github_client_secret
ApiUrl=https://api.github.com/
TrendingApiUrl=https://github-trending-api.now.sh/

📱 Screenshots

Home Screen Repository Details
Home Repository

🔧 Development

Project Structure

  • Multi-module Architecture - Separated into app, data, and domain modules
  • Vortex Infrastructure - Custom Android development framework
  • Gradle Dependencies - Centralized dependency management
  • ProGuard Configuration - Code obfuscation and optimization

Building

# Debug build
./gradlew assembleDebug

# Release build
./gradlew assembleRelease

# Run tests
./gradlew test

Star this repository if you find it helpful!

About

A Modern Android GitHub Client for Managing Repositories, Profiles, and Trending Projects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages