{"id":43374202,"url":"https://github.com/akitikkx/upnext","last_synced_at":"2026-05-03T07:14:47.502Z","repository":{"id":36966633,"uuid":"450777381","full_name":"akitikkx/upnext","owner":"akitikkx","description":"Upnext: TV Series Manager is an MVVM Android app which allows users to be able to view show schedules, popular, trending and most anticipated shows with favorite functionality provided by the Trakt API","archived":false,"fork":false,"pushed_at":"2026-05-01T05:48:46.000Z","size":67258,"stargazers_count":64,"open_issues_count":5,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-01T07:26:58.010Z","etag":null,"topics":["android","coil-image-loader","coil-kotlin","compose","coroutines-android","firebase","hilt","hilt-android","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","mvvm-android","retrofit2","room-database"],"latest_commit_sha":null,"homepage":"https://theupnextapp.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akitikkx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-22T09:53:54.000Z","updated_at":"2026-05-01T05:48:50.000Z","dependencies_parsed_at":"2026-02-17T07:02:44.925Z","dependency_job_id":null,"html_url":"https://github.com/akitikkx/upnext","commit_stats":null,"previous_names":[],"tags_count":112,"template":false,"template_full_name":null,"purl":"pkg:github/akitikkx/upnext","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitikkx%2Fupnext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitikkx%2Fupnext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitikkx%2Fupnext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitikkx%2Fupnext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akitikkx","download_url":"https://codeload.github.com/akitikkx/upnext/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitikkx%2Fupnext/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32561091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","coil-image-loader","coil-kotlin","compose","coroutines-android","firebase","hilt","hilt-android","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","mvvm-android","retrofit2","room-database"],"created_at":"2026-02-02T06:18:23.868Z","updated_at":"2026-05-03T07:14:47.475Z","avatar_url":"https://github.com/akitikkx.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Upnext: TV Series Manager\n\n[![Google Developers Dev Library](https://img.shields.io/badge/Google_Dev_Library-Accepted-green)](https://devlibrary.withgoogle.com/products/android/repos/akitikkx-upnext)\n[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.21-purple.svg)](https://kotlinlang.org)\n[![Compose](https://img.shields.io/badge/Jetpack_Compose-Material_3-blue.svg)](https://developer.android.com/jetpack/compose)\n[![License](https://img.shields.io/badge/License-MIT-orange.svg)](LICENSE)\n\n**Upnext** is a modern Android application for tracking TV series, built with industry-standard best practices and cutting-edge libraries. It serves as a reference implementation for a scalable, production-ready Android app in 2026.\n\n## 🚀 Key Features\n\n*   **100% Jetpack Compose**: Fully modern UI built with Material 3.\n*   **Adaptive Layouts**: Optimized for phones, tablets, and foldables using Window Size Classes.\n*   **Offline First**: Robust offline support with Room and WorkManager sync.\n*   **Trakt Integration**: Seamlessly syncs with Trakt.tv for tracking episodes and history.\n*   **Modern Architecture**: Clean Architecture, MVVM, and Dependency Injection with Hilt.\n\n## 🛠 Tech Stack\n\nThis project leverages the latest Android development tools and libraries:\n\n*   **Language**: [Kotlin 2.1](https://kotlinlang.org/)\n*   **UI**: [Jetpack Compose](https://developer.android.com/jetpack/compose) (Material 3)\n*   **Dependency Injection**: [Hilt](https://dagger.dev/hilt/)\n*   **Async**: [Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) \u0026 [Flow](https://kotlinlang.org/docs/flow.html)\n*   **Network**: [Retrofit](https://squareup.github.io/retrofit/) \u0026 [OkHttp](https://squareup.github.io/okhttp/)\n*   **Local Storage**: [Room](https://developer.android.com/training/data-storage/room) \u0026 [DataStore](https://developer.android.com/topic/libraries/architecture/datastore)\n*   **Image Loading**: [Coil](https://coil-kt.github.io/coil/) \u0026 [Glide](https://bumptech.github.io/glide/)\n*   **Background Work**: [WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager)\n*   **Build System**: Gradle with Version Catalogs (`libs.versions.toml`)\n\n## 🏗 Architecture\n\nThe app follows **Clean Architecture** principles with a logical separation of concerns:\n\n1.  **UI Layer**: Jetpack Compose screens and ViewModels.\n2.  **Domain Layer**: Use Cases / Interactors (Logical business rules).\n3.  **Data Layer**: Repositories, Data Sources (Local/Remote), and API definitions.\n\nAlthough currently structured as a monolithic `app` module for simplicity, the logical boundaries are strictly enforced to facilitate future modularization.\n\n## 💻 Setup \u0026 Build\n\n### Prerequisites\n*   **Android Studio**: Ladybug or newer.\n*   **JDK**: Java 17 (Ensure Gradle is using JDK 17 in simple Settings).\n\n### Trakt API Configuration\nTo run the app, you need a Trakt.tv API key.\n\n1.  Register an application at [Trakt.tv](https://trakt.tv/oauth/applications).\n2.  Set the Redirect URI to: `theupnextapp://callback`\n3.  Create a `local.properties` file in the project root (do NOT commit this file).\n4.  Add your keys:\n\n```properties\nTraktClientID=\"YOUR_CLIENT_ID\"\nTraktClientSecret=\"YOUR_CLIENT_SECRET\"\nTraktRedirectURI=\"theupnextapp://callback\"\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to propose bug fixes and new features.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakitikkx%2Fupnext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakitikkx%2Fupnext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakitikkx%2Fupnext/lists"}