Skip to content

A modern Android application built with Jetpack Compose that allows users to search GitHub users and add them to a list of favorites. It utilizes the GitHub API and follows modern Android development best practices with a clean architecture.

Notifications You must be signed in to change notification settings

hasbisevinc/GithubSearch

Repository files navigation

GithubSearch

A modern Android application built with Jetpack Compose that allows users to search GitHub users and add them to a list of favorites. It utilizes the GitHub API and follows modern Android development best practices with a clean architecture.

✨ Features

  • 🔍 Search GitHub users in real-time
  • ⭐ Add or remove users from your favorites
  • 📦 Persist favorites locally with Room
  • 🖼️ Load user avatars efficiently with Coil
  • 📱 Built with a fully Jetpack Compose-based UI

📝 Project Plan

Task Estimated Hours
Initial design 1
Project codebase setup 2
Setting up Clean Architecture layers 1
Preparing the UI design 2
Setting up dependency injection (DI) 1
Implementing API integration 1
Setting up database and caching 2
Adding favorites functionality 1
Implementing navigation and UI logic 2
Bug fixing and refinements 1

Total Estimated Hours: 14

📸 User Interface

The user interface was initially generated using Google’s Stitch AI, based on the project’s core requirements. The UI was refined and finalized in Figma, ensuring usability, accessibility, and visual consistency.

Figma link: https://www.figma.com/design/S7FlA0HTTwHe6Bb7rm1RAJ/Github-User-Search?node-id=0-1&t=QrRQH6s0Vr7DZMn3-1

🚀 Tech Stack

  • Jetpack Compose – Modern UI toolkit
  • Kotlin Flows – Reactive data streams
  • Coroutines – Asynchronous programming
  • Room – Local database storage
  • Retrofit – Networking and REST API handling
  • Coil – Image loading
  • Hilt – Dependency Injection

🧱 Architecture

This app is built using a multi-module Clean Architecture structure and follows the MVVM (Model-View-ViewModel) design pattern.

Modularization

  • core – Contains shared utilities and base components
  • data – Repository and API implementations
  • domain – Business logic and use cases
  • presentation – Compose UI and ViewModels
  • app – Application layer for bootstrapping
  • framework – acts as the bridge between platform-specific dependencies

Layers

  • Presentation Layer: Jetpack Compose UI & ViewModels (with state management via Flows)
  • Domain Layer: Use cases, business logic, and interfaces
  • Data Layer: Repositories, local (Room), and remote (Retrofit) data sources

🛠️ Setup

  1. Clone the repository:

    git clone https://github.com/hasbisevinc/GithubSearch.git
  2. Open the project in Android Studio (Android Studio Meerkat Feature Drop | 2024.3.2 or higher).

  3. Make sure you have an active internet connection to access the GitHub API.

  4. Run the project on an emulator or a real device.

About

A modern Android application built with Jetpack Compose that allows users to search GitHub users and add them to a list of favorites. It utilizes the GitHub API and follows modern Android development best practices with a clean architecture.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages