Skip to content

Latest commit

 

History

History
247 lines (235 loc) · 51.2 KB

File metadata and controls

247 lines (235 loc) · 51.2 KB

Repository Atlas: anitrend-v2

Project Responsibility

AniTrend v2 is a modular Android client for AniList. It combines feature modules, shared presentation modules, domain contracts, data repositories, WorkManager tasks, Android platform helpers, and Gradle convention logic into one clean architecture application.

System Entry Points

  • app/src/main/kotlin/co/anitrend/App.kt: application startup and dependency injection entry.
  • app/src/main/kotlin/co/anitrend/component/screen/MainScreen.kt: main app shell and feature navigation host.
  • app/core/src/main/kotlin/co/anitrend/core/koin/Modules.kt: app-level Koin module aggregation.
  • app/navigation/: router and payload contracts used by app, features, and task routes.
  • data/src/main/graphql/: AniList GraphQL operation assets.
  • data/edge/src/main/graphql/: AniTrend Edge GraphQL operation assets.
  • buildSrc/src/main/java/co/anitrend/buildSrc/module/Modules.kt: Gradle module registry.
  • settings.gradle.kts: Gradle project inclusion root.
  • build.gradle.kts: root Gradle build configuration.
  • gradle/libs.versions.toml: centralized dependency and plugin version catalog.

Architecture Flow

  1. App startup initializes Koin, logging, migrations, configuration, feature routers, and platform helpers.
  2. Navigation routes enter feature modules through provider contracts and payload models.
  3. Feature and common modules render Compose or legacy UI and call interactor aliases instead of data implementations.
  4. Domain contracts define pure Kotlin repositories, params, entities, and use case boundaries.
  5. Data modules implement repositories through sources, controllers, GraphQL requests, Retrofit clients, Room stores, mappers, and cache policies.
  6. Task modules use WorkManager for background-safe sync and mutation work that survives process boundaries.
  7. Build convention modules keep Gradle plugins, dependency bundles, module names, versioning, and formatting centralized.

Repository Directory Map

Directory Responsibility Summary Detailed Map
app/ app/ owns the application entry scope. It contains the installable app module, shared app runtime infrastructure in app/core/, and cross-feature navigation contracts in app/navigation/. View Map
android/ android/ contains Android platform modules shared by the app shell and features. It owns core Android helpers, resources, settings, theme, deep link entry, navigation drawer UI, and common i18n strings. View Map
data/ data/ contains AniTrend data-layer implementations, shared data infrastructure, local persistence, remote API adapters, GraphQL operation assets, and data module integrations used by domain contracts. The scope bridges domain repository interfaces to AniList GraphQL, AniTrend Edge GraphQL, RSS-style feed endpoints, Room stores, Retrofit clients, cache policies, and settings contracts. View Map
domain/ domain/ is the pure Kotlin contract layer for AniTrend features. It defines repository interfaces, use case wrappers, request parameter models, domain entities, shared contracts, and sort or enum types for app concepts such as media, media lists, reviews, users, staff, studios, news, and configuration. View Map
task/ task/ contains Android WorkManager modules for background sync and mutation work. Source-bearing modules wrap data interactors in SupportCoroutineWorker classes, expose worker classes through navigation task routers, load their Koin worker bindings, and schedule periodic work where needed. View Map
feature/ feature/ contains app-facing screen modules. Each child module owns a user-visible destination or flow, while data access remains behind domain and data alias interactors. Feature modules render screens, collect user actions, bind ViewModels or presenters, and expose navigation providers where the app shell or shared routers need to enter the feature. View Map
common/ common/ contains reusable UI and presentation modules shared by multiple features. These modules provide Compose components, legacy widgets, adapters, presenters, markdown helpers, controller models, charts, and other view-layer primitives. They do not own screen destinations or data repositories. View Map
buildSrc/ buildSrc/ owns the custom Gradle build logic that is compiled before the main AniTrend build. It centralizes Android plugin application, dependency bundles, version propagation, module registry values, lint and test defaults, Java and Kotlin toolchain settings, and Spotless formatting setup. Key files: - buildSrc/build.gradle.kts declares the Kotlin DSL build, version catalog access, and build logic dependencies. - buildSrc/src/main/java/co/anitrend/buildSrc/plugins/CorePlugin.kt is the main plugin entry point used by project modules. - buildSrc/src/main/java/co/anitrend/buildSrc/module/Modules.kt is the canonical typed module registry. - buildSrc/src/main/java/co/anitrend/buildSrc/plugins/components/ProjectDependencies.kt maps module groups to shared dependency sets. - buildSrc/src/main/java/co/anitrend/buildSrc/plugins/components/ProjectSpotless.kt wires formatting rules to templates in spotless/. View Map
gradle/ gradle/ owns root build support files that are consumed by Gradle itself and by AniTrend buildSrc convention logic. It centralizes dependency versions, plugin aliases, release version properties, wrapper distribution metadata, and daemon JVM toolchain metadata. Key files: - gradle/libs.versions.toml is the version catalog for plugin and library aliases. - gradle/version.properties contains the app release version, numeric code, and release name used by build config generation. - gradle/wrapper/gradle-wrapper.properties pins the Gradle distribution and wrapper download behavior. - gradle/gradle-daemon-jvm.properties records the daemon toolchain version, vendor, and platform download URLs generated by Gradle. - gradle/wrapper/gradle-wrapper.jar is the binary wrapper launcher and is not described further in text codemaps. View Map
spotless/ spotless/ contains license header templates consumed by the Gradle Spotless configuration in buildSrc. It keeps Kotlin, Kotlin Gradle script, and XML copyright headers consistent across formatted source files. Key files: - spotless/copyright.kt is the Kotlin source license header template. - spotless/copyright.kts is the Kotlin Gradle script license header template. - spotless/copyright.xml is the XML license header template. - spotless/copyright.properties supports property file license handling where configured. View Map

Detailed Codemap Index

Directory Responsibility Summary Detailed Map
android/core/ android/core/ is the shared Android platform toolkit. It owns settings, theme helpers, storage helpers, notification helpers, shortcuts, power state, view and Compose utilities, reusable resources, and Koin bindings. View Map
android/deeplink/ android/deeplink/ owns the app deep link, splash, and onboarding entry flow. It parses AniList and AniTrend URIs, builds destination intents, and redirects into the main app or feature routes. View Map
android/i18n/ android/i18n/ is a small Android resource module for shared localized strings that can be consumed by platform and presentation modules. View Map
android/navigation/ android/navigation/ owns the main bottom navigation drawer platform module. It provides drawer UI, drawer state, drawer adapters, Compose drawer support, router provider, and Koin bindings. View Map
app/core/ app/core/ is the shared app runtime layer used by the app shell and feature modules. It provides base activity, screen, content, view model, Koin, migration, logging, Coil, and crash handling infrastructure. View Map
app/navigation/ app/navigation/ defines the app wide navigation and task routing contracts used to decouple feature modules, app shell code, and task modules. View Map
buildSrc/src/ buildSrc/src/ contains the source sets for AniTrend Gradle build logic. The active implementation lives in buildSrc/src/main/, while tests are intentionally outside this codemap scope. View Map
common/character/ Reserved shared UI module for character presentation. No Kotlin source files were present under common/character/src/main/kotlin at inspection time. View Map
common/editor/ Provides reusable markdown input widget support for feature modules. View Map
common/episode/ Provides reusable episode cards, sheet Compose content, paging adapter, controller models, rating widget, and summary controller. View Map
common/feed/ Reserved shared UI module for feed presentation. No Kotlin source files were present under common/feed/src/main/kotlin at inspection time. View Map
common/forum/ Reserved shared UI module for forum presentation. No Kotlin source files were present under common/forum/src/main/kotlin at inspection time. View Map
common/genre/ Provides reusable genre list adapter, controller model, differ, and Compose genre section. View Map
common/markdown/ Provides reusable Markdown text widgets, Compose Markdown text, Markwon plugins, image spans, alignment decorators, size measurement, and press animation helpers. View Map
common/media/ Provides reusable media cards, carousel controllers, detail sections, metadata widgets, status, score, rank, synopsis, progress, rating, airing, releasing, and title components. View Map
common/medialist/ Provides reusable media list editing controls. View Map
common/navigation/ Reserved common navigation UI module. No Kotlin source files were present under common/navigation/src/main/kotlin at inspection time. View Map
common/news/ Provides reusable news controller model and differ support. View Map
common/recommendation/ Reserved shared UI module for recommendation presentation. No Kotlin source files were present under common/recommendation/src/main/kotlin at inspection time. View Map
common/review/ Provides reusable review card Compose presentation. View Map
common/shared/ Provides shared Compose scaffolding, list bottom sheets, chart components, share extensions, and markdown image plugin wiring used across feature modules. View Map
common/staff/ Reserved shared UI module for staff presentation. No Kotlin source files were present under common/staff/src/main/kotlin at inspection time. View Map
common/studio/ Reserved shared UI module for studio presentation. No Kotlin source files were present under common/studio/src/main/kotlin at inspection time. View Map
common/tag/ Provides reusable media tag list adapter, controller model, differ, and Compose tag component. View Map
common/user/ Reserved shared UI module for user presentation. No Kotlin source files were present under common/user/src/main/kotlin at inspection time. View Map
data/android/ data/android/ is a minimal Android data module shell. In this checkout it contains an Android manifest but no Kotlin package tree. View Map
data/core/ data/core/ supplies shared data-layer infrastructure for Android-backed stores and Retrofit-backed requests. It includes cache policy, controllers, Room helpers, mapper bases, network clients, logging, paging support, source base classes, and query-building helpers. View Map
data/edge/ data/edge/ implements AniTrend Edge GraphQL integration and local persistence for Edge-provided config, media enrichment, news, episodes, images, themes, trailers, seasons, navigation, network, and genre data. View Map
data/feed/ data/feed/ implements non-AniList feed integration for news and episode content, including feed API factory support, RSS-like models, remote and local sources, Room entities, cache policies, mappers, converters, repositories, sources, use cases, and Koin wiring. View Map
data/imgur/ data/imgur/ is the Imgur integration module. In this checkout the Kotlin content is limited to Koin module wiring under the Imgur package. View Map
data/settings/ data/settings/ defines persisted settings contracts for cache, connectivity, customization, developer options, feature flags, notifications, power behavior, privacy, push, refresh behavior, sort order, and sync behavior. View Map
feature/about/ Owns the About destination that presents application and project information. View Map
feature/account/ Owns account-facing Compose screen scaffolding for authenticated user account content. View Map
feature/airing/ Owns the airing schedule destination and paged schedule content. View Map
feature/auth/ Owns OAuth style authentication entry, result handling, and authenticated state presentation. View Map
feature/character/ Owns the character destination screen and character detail ViewModel. View Map
feature/episode/ Owns episode browsing content and the episode bottom sheet destination. View Map
feature/feed/ Owns the feed destination, content host, and feed ViewModel. View Map
feature/forum/ Owns the forum destination and forum content presentation. View Map
feature/image-viewer/ Owns the full-screen image viewing destination and image page state. View Map
feature/media/ Owns the main media detail destination, related sub-screens, media actions, schedule sheet, and media detail sections. View Map
feature/medialist/ Owns user media list screen, container state, and list content presentation. View Map
feature/news/ Owns news browsing, news detail presentation, and RSS or embedded content decoration. View Map
feature/notification/ Owns the notification destination and notification list presentation. View Map
feature/profile/ Owns profile overview, library, feed, stats, hero, and section state presentation. View Map
feature/recommendation/ Reserved feature module for recommendation surfaces. No Kotlin source files were present under feature/recommendation/src/main/kotlin at inspection time. View Map
feature/review/ Owns review browsing or detail content and review route state. View Map
feature/search/ Owns multi-scope search for media, characters, staff, studios, and users. View Map
feature/settings/ Owns settings navigation, preference construction, account settings, AniList settings, developer settings, feature flags, filters, locale, logs, notifications, power, sync, and theme settings surfaces. View Map
feature/staff/ Owns staff detail destination presentation. View Map
feature/studio/ Owns studio detail destination, detail UI state, and studio content presentation. View Map
feature/suggestion/ Owns the suggestion destination and suggestion content presentation. View Map
feature/updater/ Owns update check UI, update channel state, and update result presentation. View Map
task/account/ Runs account sign-in and sign-out work in the background so account state changes can be routed through WorkManager. View Map
task/character/ Task module shell for character background work. No Kotlin WorkManager implementation is present in task/character/src/main/kotlin/. View Map
task/config/ Refreshes application configuration through a scheduled WorkManager task. View Map
task/episode/ Synchronizes episode data in the background. View Map
task/favourite/ Runs favourite toggle mutations through WorkManager. View Map
task/feed/ Task module shell for feed background work. No Kotlin WorkManager implementation is present in task/feed/src/main/kotlin/. View Map
task/forum/ Task module shell for forum background work. No Kotlin WorkManager implementation is present in task/forum/src/main/kotlin/. View Map
task/genre/ Refreshes media genre metadata in the background. View Map
task/media/ Task module shell for media background work. No Kotlin WorkManager implementation is present in task/media/src/main/kotlin/. View Map
task/medialist/ Runs media list sync and media list mutation work for anime, manga, entries, entry batches, and custom lists. View Map
task/news/ Synchronizes news data in the background. View Map
task/recommendation/ Task module shell for recommendation background work. No Kotlin WorkManager implementation is present in task/recommendation/src/main/kotlin/. View Map
task/review/ Runs review save, delete, and vote mutations through WorkManager. View Map
task/staff/ Task module shell for staff background work. No Kotlin WorkManager implementation is present in task/staff/src/main/kotlin/. View Map
task/studio/ Task module shell for studio background work. No Kotlin WorkManager implementation is present in task/studio/src/main/kotlin/. View Map
task/tag/ Refreshes media tag metadata in the background. View Map
task/updater/ Task module shell for updater background work. No Kotlin WorkManager implementation is present in task/updater/src/main/kotlin/. View Map
task/user/ Runs user account sync, follow toggle, and user statistic sync tasks. View Map
buildSrc/src/main/ buildSrc/src/main/ is the production source set for build logic. It contains the Java source root used for Kotlin files that implement the project convention plugin and its helpers. View Map
buildSrc/src/main/java/ buildSrc/src/main/java/ is the source root for the build logic package tree. Despite the directory name, the implementation files are Kotlin source files for Gradle plugin code. View Map
data/src/main/graphql/ This directory contains AniList GraphQL operation assets used to generate Kotlin request, variable, and response model types for the main AniList data package. View Map
buildSrc/src/main/java/co/ buildSrc/src/main/java/co/ is package namespace scaffolding for AniTrend build logic. It exists to contain the co.anitrend package hierarchy. View Map
data/edge/src/main/graphql/ This directory contains AniTrend Edge GraphQL assets for generated Edge request and response types. View Map
data/src/main/graphql/fragments/ Reusable AniList GraphQL selection sets for shared response model generation. View Map
data/src/main/graphql/mutations/ AniList GraphQL write operations for favourites, feed, forum, media lists, reviews, recommendations, studios, staff, characters, and user actions. View Map
data/src/main/graphql/queries/ AniList GraphQL read operations for detail, search, paging, profile, social, and list flows. View Map
app/src/main/kotlin/co/anitrend/ This package is the main application shell for the app module. It owns the concrete App class, MainScreen, app level DI, push registration coordination, and feature router providers for the home activity. View Map
buildSrc/src/main/java/co/anitrend/ buildSrc/src/main/java/co/anitrend/ is the AniTrend package namespace for custom Gradle build logic. View Map
app/src/main/kotlin/co/anitrend/component/ This package contains the main activity presentation layer. It manages the main shell screen, action objects for UI chrome, the presenter used for external links and settings, and the view model state used to survive activity recreation. View Map
app/src/main/kotlin/co/anitrend/initializer/ This package contains app module AndroidX Startup integration after core dependency injection has started. View Map
app/src/main/kotlin/co/anitrend/koin/ This package wires app module dependencies for the main activity shell. View Map
app/src/main/kotlin/co/anitrend/push/ This package coordinates push registration from the app shell without owning notification delivery UI. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/ co.anitrend.buildSrc is the root package for AniTrend build conventions. It defines public build logic anchors, typed project path constants, Gradle extension helpers, plugin components, and dependency resolution rules. Key files and packages: - Libraries.kt exposes selected module paths through nested objects for script friendly access. - module/Modules.kt is the canonical module registry used by build logic. - extensions/ provides project classification, Gradle extension accessors, and dependency helper functions. - plugins/ contains the convention plugin entry point and componentized configuration steps. - resolver/ centralizes dependency conflict handling. View Map
data/src/main/kotlin/co/anitrend/data/ This package contains the main AniList data implementations and shared support packages. It includes repositories, sources, local Room stores, remote Retrofit sources, GraphQL response models, mappers, converters, cache policies, Koin modules, and data interactor aliases for AniList-backed domain contracts. View Map
domain/src/main/kotlin/co/anitrend/domain/ This package root contains all domain contracts and app-facing models used by AniTrend layers. Each direct child package maps to one product concept or shared domain utility. View Map
app/core/src/main/kotlin/co/anitrend/core/ This package contains app runtime primitives: AniTrendApplication, coroutine services, base screen and content types, migration manager, Koin module helpers, Coil integration, crash handling, and UI extension utilities. View Map
app/navigation/src/main/kotlin/co/anitrend/navigation/ This package is the central router registry. NavigationTargets.kt declares route objects for screens, fragments, sheets, deep links, and background workers. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/extensions/ extensions/ contains Gradle helper extensions used by the convention plugin. These helpers classify projects, access Android and Gradle extensions, expose generated version catalog accessors, and add dependencies to typed configurations. Key files: - ProjectExtensions.kt maps project paths to module groups and wraps common Gradle extension lookups. - DependencyHandlerExtensions.kt provides typed helpers for implementation, runtimeOnly, ksp, flavor configurations, platform BOMs, and test configurations. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/module/ module/ owns the typed registry of AniTrend Gradle project paths. It is the source of truth for module group prefixes and enumerated app, domain, data, android, common, feature, and task modules. Key file: - Modules.kt defines prefix constants, a shared Module interface, and enum groups whose path value formats Gradle project paths. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/plugins/ plugins/ contains the AniTrend convention plugin and its supporting configuration packages. It is responsible for applying plugins, Android defaults, compiler options, dependency sets, optional flavor plugins, and Spotless formatting. Key files and packages: - CorePlugin.kt is the main Plugin<Project> implementation. - components/ contains focused setup functions for plugins, Android configuration, dependencies, options, properties, and Spotless. - strategy/ contains reusable default dependency strategy logic. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/resolver/ resolver/ contains dependency resolution helpers used to normalize versions and targets during Gradle dependency resolution. Key file: - ConfigurationResolver.kt defines Configuration.handleConflicts(project). View Map
data/src/main/kotlin/co/anitrend/data/account/ Implements account repository plumbing and account actions for domain account contracts. View Map
data/src/main/kotlin/co/anitrend/data/airing/ Implements AniList airing schedule paging data for media-related airing views. View Map
data/src/main/kotlin/co/anitrend/data/android/ Contains Android-specific database, Koin, and network bridge packages for the main data module. View Map
data/src/main/kotlin/co/anitrend/data/auth/ Implements authentication data, token settings, auth helper logic, and auth repository wiring. View Map
data/src/main/kotlin/co/anitrend/data/carousel/ Implements media carousel data used by discovery or home surfaces. View Map
data/src/main/kotlin/co/anitrend/data/character/ Implements character search data access and character persistence. View Map
data/src/main/kotlin/co/anitrend/data/common/ Hosts shared data entities, custom GraphQL scalar mappings, model helpers, extensions, and paging support. View Map
data/src/main/kotlin/co/anitrend/data/core/ Contains core API endpoint contracts and data extensions used by AniList remote sources. View Map
data/src/main/kotlin/co/anitrend/data/customlist/ Persists custom media list metadata used by media list and user settings flows. View Map
data/src/main/kotlin/co/anitrend/data/customscore/ Persists custom score definitions used by media list and settings flows. View Map
data/src/main/kotlin/co/anitrend/data/favourite/ Implements favourite toggle mutations for anime, manga, character, staff, and studio targets. View Map
data/src/main/kotlin/co/anitrend/data/genre/ Implements cached AniList genre list reads. View Map
data/src/main/kotlin/co/anitrend/data/link/ Stores and maps external link data embedded by media and related response models. View Map
data/src/main/kotlin/co/anitrend/data/media/ Implements media detail, search paging, people, studios, stats, relations, and recommendations data access. View Map
data/src/main/kotlin/co/anitrend/data/medialist/ Implements media list sync, entry reads, paged reads, save, bulk save, delete entry, and delete custom list operations. View Map
data/src/main/kotlin/co/anitrend/data/mediatrend/ Provides media trend model conversion and DI support used by media-related responses. View Map
data/src/main/kotlin/co/anitrend/data/notification/ Contains notification remote models and datasource wiring for AniList notification flows. View Map
data/src/main/kotlin/co/anitrend/data/rank/ Stores and maps media rank data embedded by media responses. View Map
data/src/main/kotlin/co/anitrend/data/recommendation/ Stores and maps recommendation data and media recommendation connections. View Map
data/src/main/kotlin/co/anitrend/data/review/ Implements review detail, review paging, rate, save, and delete operations. View Map
data/src/main/kotlin/co/anitrend/data/shared/ Hosts shared data models reused across package boundaries. View Map
data/src/main/kotlin/co/anitrend/data/staff/ Implements staff paging data and staff persistence. View Map
data/src/main/kotlin/co/anitrend/data/status/ Stores and maps media status distribution or status-related embedded data. View Map
data/src/main/kotlin/co/anitrend/data/studio/ Implements studio detail and studio search data access plus media-studio connection support. View Map
data/src/main/kotlin/co/anitrend/data/tag/ Implements cached AniList media tag list reads. View Map
data/src/main/kotlin/co/anitrend/data/thread/ Contains thread or forum remote models and datasource wiring for AniList thread flows. View Map
data/src/main/kotlin/co/anitrend/data/user/ Implements user lookup, authenticated user, profile, search, statistics, overview, feed, follow toggle, and update operations. View Map
data/src/main/kotlin/co/anitrend/data/util/ Contains utility helpers for GraphQL response or request handling. View Map
domain/src/main/kotlin/co/anitrend/domain/account/ Owns domain operations for local account identity, sign in, sign out, and authorized account lookup. View Map
domain/src/main/kotlin/co/anitrend/domain/airing/ Defines airing schedule queries, schedule entities, sort values, and media-linked schedule results. View Map
domain/src/main/kotlin/co/anitrend/domain/auth/ Defines the authenticated-user contract used after account authorization. View Map
domain/src/main/kotlin/co/anitrend/domain/carousel/ Defines media carousel request and entity shapes for curated media rows. View Map
domain/src/main/kotlin/co/anitrend/domain/character/ Defines character search, identity, role, and sort domain models. View Map
domain/src/main/kotlin/co/anitrend/domain/common/ Provides reusable domain primitives shared across entity packages. View Map
domain/src/main/kotlin/co/anitrend/domain/config/ Defines the app configuration read contract and config entity. View Map
domain/src/main/kotlin/co/anitrend/domain/episode/ Defines episode detail, paged episode listing, and episode sync contracts. View Map
domain/src/main/kotlin/co/anitrend/domain/favourite/ Defines favourite toggle and favourite ordering mutations for anime, manga, characters, staff, and studios. View Map
domain/src/main/kotlin/co/anitrend/domain/genre/ Defines media genre lookup contracts and genre entities. View Map
domain/src/main/kotlin/co/anitrend/domain/media/ Defines the central media domain for anime and manga detail, search, relations, recommendations, characters, staff, studios, stats, titles, images, ranks, scores, links, trailers, sources, and enums. View Map
domain/src/main/kotlin/co/anitrend/domain/medialist/ Defines user media list reads, collection sync, list entry lookup, paged lists, save mutations, batch saves, custom list deletion, and entry deletion. View Map
domain/src/main/kotlin/co/anitrend/domain/mediatrend/ Defines media trend entities and trend params used by media trend queries. View Map
domain/src/main/kotlin/co/anitrend/domain/news/ Defines news listing and news sync contracts. View Map
domain/src/main/kotlin/co/anitrend/domain/notification/ Defines notification entity, type enum, and notification query params. View Map
domain/src/main/kotlin/co/anitrend/domain/recommendation/ Defines recommendation params, rating enum, sort enum, and recommendation entity. View Map
domain/src/main/kotlin/co/anitrend/domain/review/ Defines review detail, paged review search, rating, save, and delete operations. View Map
domain/src/main/kotlin/co/anitrend/domain/staff/ Defines staff listing, staff entity contracts, language enum, and sort enum. View Map
domain/src/main/kotlin/co/anitrend/domain/status/ Defines user activity status params, status entity shape, status type, and status sort values. View Map
domain/src/main/kotlin/co/anitrend/domain/studio/ Defines studio detail, paged studio search, studio entity contracts, and sort values. View Map
domain/src/main/kotlin/co/anitrend/domain/tag/ Defines media tag lookup contracts and tag entities. View Map
domain/src/main/kotlin/co/anitrend/domain/thread/ Defines forum thread params, thread entity shape, and thread sort enums. View Map
domain/src/main/kotlin/co/anitrend/domain/user/ Defines user lookup, authenticated profile reads, profile search, follow toggles, profile updates, statistics, overview, feed params, user entities, options, statistics, and profile models. View Map
android/core/src/main/kotlin/co/anitrend/android/core/ This package contains shared Android core source. It includes settings, configuration helpers, notification utilities, storage and power controllers, shortcuts, extensions, reusable views, RecyclerView helpers, Compose design components, and Material theme setup. View Map
android/deeplink/src/main/kotlin/co/anitrend/android/deeplink/ This package contains the concrete deep link feature implementation: screen, Compose UI, presenters, view model, route definitions, environment, provider, initializer, and Koin wiring. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/ This package contains the Android navigation drawer source code, including Compose drawer UI and legacy drawer implementation. View Map
app/core/src/main/kotlin/co/anitrend/core/coil/ This package customizes Coil image loading for AniTrend specific image request models and cache policy. View Map
app/core/src/main/kotlin/co/anitrend/core/component/ This package provides reusable app component base classes for screens, sheets, content containers, adapters, and view models. View Map
app/core/src/main/kotlin/co/anitrend/core/config/ This package defines developer mode configuration contracts used by app flavors and debug builds. View Map
app/core/src/main/kotlin/co/anitrend/core/crash/ This package owns app crash handling abstractions and runtime exception delegation. View Map
app/core/src/main/kotlin/co/anitrend/core/extensions/ This package contains app runtime extension functions for coroutine scopes, authentication checks, flows, components, collections, and general core helpers. View Map
app/core/src/main/kotlin/co/anitrend/core/initializer/ This package contains core startup phases for dependency injection, migration, and logging. View Map
app/core/src/main/kotlin/co/anitrend/core/koin/ This package aggregates core dependency modules and defines app scope helpers for runtime injection. View Map
app/core/src/main/kotlin/co/anitrend/core/migration/ This package manages app level migrations that must run when the stored app version changes. View Map
app/core/src/main/kotlin/co/anitrend/core/ui/ This package provides app specific UI helpers for fragment transactions, tagged fragment reuse, scoped injection, and lightweight fragment item models. View Map
app/navigation/src/main/kotlin/co/anitrend/navigation/extensions/ This package contains adapters that turn navigation contracts into Android operations. View Map
app/navigation/src/main/kotlin/co/anitrend/navigation/model/ This package stores shared route payload models and parameter marker contracts. View Map
app/navigation/src/main/kotlin/co/anitrend/navigation/router/ This package contains the base router abstraction for all app navigation targets. View Map
app/navigation/src/main/kotlin/co/anitrend/navigation/work/ This package defines scheduling contracts for background work routed through app/navigation. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/plugins/components/ plugins/components/ contains the focused functions that implement the AniTrend convention plugin. Each file owns one configuration concern for all modules that apply the plugin. Key files: - ProjectPlugins.kt applies Android application or library plugins, Spotless, Parcelize, KSP, Compose, and optional Google services or Crashlytics plugins. - ProjectConfiguration.kt sets SDK levels, flavors, build types, lint, packaging, source sets, toolchains, compiler options, test tasks, and a makeProguard helper task. - ProjectOptions.kt wires version build config fields, optional local config fields, Room schema options, and release signing configuration. - ProjectDependencies.kt applies shared dependencies by module family and Compose support. - ProjectProperties.kt reads gradle/version.properties. - ProjectSpotless.kt configures Kotlin, Kotlin Gradle, and XML formatting targets. View Map
buildSrc/src/main/java/co/anitrend/buildSrc/plugins/strategy/ plugins/strategy/ contains reusable dependency strategy logic shared by module specific dependency setup. Key file: - DependencyStrategy.kt applies baseline Kotlin, Timber, test, Android test, lifecycle, coroutine, Koin, and selected support architecture dependencies. View Map
data/core/src/main/kotlin/co/anitrend/data/android/ This package is the shared Android data infrastructure layer. It supplies reusable cache, controller, database, mapper, network, paging, logger, source, filter, and device info support for concrete data modules. View Map
data/edge/src/main/kotlin/co/anitrend/data/edge/ This package contains AniTrend Edge data implementations for config, core store support, episode, genre, image, media, navigation, network, news, season, theme, and trailer data. View Map
data/feed/src/main/kotlin/co/anitrend/data/feed/ This package contains feed API support plus news and episode data implementations for feed-backed content. View Map
data/imgur/src/main/kotlin/co/anitrend/data/imgur/ This package contains the Imgur data namespace and Koin wiring present in this checkout. View Map
data/settings/src/main/kotlin/co/anitrend/data/settings/ This package is the settings contract namespace. Each child directory defines interfaces and related values for one settings concern. View Map
android/core/src/main/kotlin/co/anitrend/android/core/components/ This package contains reusable Android view components for sheets, floating action menus, and custom edge treatments. View Map
android/core/src/main/kotlin/co/anitrend/android/core/compose/ This package provides shared Compose primitives, design components, shape helpers, dimensions, and preview providers. View Map
android/core/src/main/kotlin/co/anitrend/android/core/controller/ This package contains Android service backed controllers for power and widget operations. View Map
android/core/src/main/kotlin/co/anitrend/android/core/extensions/ This package contains low level Android extension functions for context, intent, view, inset, LiveData, Compose, Chip, and Timber helpers. View Map
android/core/src/main/kotlin/co/anitrend/android/core/helpers/ This package contains focused Android helper utilities for color, date, image, and notification behavior. View Map
android/core/src/main/kotlin/co/anitrend/android/core/koin/ This package defines the Koin module aggregate for Android platform services and helpers. View Map
android/core/src/main/kotlin/co/anitrend/android/core/recycler/ This package contains RecyclerView support classes for carousel presentation, item binding models, spacing decorators, and selection behavior. View Map
android/core/src/main/kotlin/co/anitrend/android/core/settings/ This package owns app preference backed settings and helper contracts for locale, theme, and configuration. View Map
android/core/src/main/kotlin/co/anitrend/android/core/shortcut/ This package creates Android app shortcuts for supported destinations. View Map
android/core/src/main/kotlin/co/anitrend/android/core/storage/ This package owns file and cache storage helpers used by app core and data integrations. View Map
android/core/src/main/kotlin/co/anitrend/android/core/ui/ This package defines AniTrend Material3 theme setup, color tokens, typography, typeface tokens, and preview helpers. View Map
android/core/src/main/kotlin/co/anitrend/android/core/views/ This package contains shared View system utilities and custom views. View Map
android/deeplink/src/main/kotlin/co/anitrend/android/deeplink/component/ This package contains the deep link presentation and route handling components. View Map
android/deeplink/src/main/kotlin/co/anitrend/android/deeplink/koin/ This package wires all deep link feature dependencies. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/compose/ This package contains the Compose implementation of the navigation drawer sheet. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/drawer/ This package is the main drawer implementation. It owns drawer actions, adapters, controller models, content fragments, presenters, view models, router provider, initializer, and Koin setup. View Map
data/core/src/main/kotlin/co/anitrend/data/android/cache/ The cache package records request identities and decides whether a source can refresh a resource. It stores cache log entries and exposes helpers used by offline-first and paged sources. View Map
data/core/src/main/kotlin/co/anitrend/data/android/controller/ The controller package coordinates request execution, response mapping, persistence, and load-state publication for default REST-like responses and GraphQL responses. View Map
data/core/src/main/kotlin/co/anitrend/data/android/database/ The database package contains shared Room database utilities used by data stores. View Map
data/core/src/main/kotlin/co/anitrend/data/android/network/ The network package provides shared HTTP and GraphQL request infrastructure for data modules, including clients, cookies, interceptors, cache headers, response models, and default network adapters. View Map
android/deeplink/src/main/kotlin/co/anitrend/android/deeplink/component/route/ This package maps external and internal URI patterns to AniTrend navigation intents. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/drawer/component/ This package contains drawer UI components, presenter, and view models for both host and drawer content. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/drawer/koin/ This package wires the drawer feature dependencies. View Map
android/navigation/src/main/kotlin/co/anitrend/android/navigation/drawer/model/ This package stores drawer data models for accounts, navigation sections, sheet state, and internal mapping. View Map

Usage Notes

  • Start with this atlas for repository entry points and layer boundaries.
  • For folder-specific work, open the linked folder codemap.md before inspecting implementation files.
  • Codemaps intentionally exclude tests, generated outputs, build caches, translations, schema exports, and broad documentation files.
  • Keep new codemap content aligned with AGENTS.md and the repo-local skills under .agents/skills/.