Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AniTrack - Anime & TV Series Tracker

AniTrack is a comprehensive mobile application designed to be the ultimate companion for passionate anime and TV series fans. Built with modern Android development practices, it provides seamless progress tracking, discovery features, and community engagement capabilities.

🎯 Project Overview

AniTrack enables users to:

  • Track Progress: Manage shows under categories like "Watching", "Completed", "Plan to Watch", etc.
  • Discover Content: Browse trending shows, editor's picks, and popular content
  • Community Features: Join discussion clubs and share reviews with a unique four-option rating system
  • Offline Support: View and manage watchlists without internet connection
  • Deep Link Integration: Seamlessly navigate to streaming platforms

🚀 Features

Phase 1 (MVP - Current)

  • ✅ User authentication system
  • ✅ Third-party API integration (TMDB)
  • ✅ Core watchlist functionality
  • ✅ Offline data access
  • ✅ Modern Material 3 UI with Jetpack Compose
  • ✅ Responsive design with dark/light theme support

Phase 2 (Community Features - Planned)

  • 🔄 Four-option review system (Skip, Timepass, Go for it, Perfection)
  • 🔄 Forum-style discussion clubs
  • 🔄 Spoiler protection mechanisms
  • 🔄 Admin panel for moderation

Phase 3 (Enhancements - Planned)

  • 🔄 AI-powered recommendation engine
  • 🔄 Curated discovery dashboard
  • 🔄 User analytics dashboard
  • 🔄 Advanced search and filtering

🛠 Technical Stack

  • Frontend: Jetpack Compose, Material 3
  • Architecture: MVVM with Clean Architecture
  • Dependency Injection: Hilt
  • Database: Room with SQLite
  • Networking: Retrofit + OkHttp
  • Image Loading: Coil
  • Navigation: Navigation Compose
  • State Management: StateFlow
  • Build System: Gradle with Kotlin DSL

📱 Screenshots

Screenshots will be added as the app development progresses

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (API level 24)
  • Kotlin 2.0.21+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AniTrack.git
    cd AniTrack
  2. Get TMDB API Key

    • Visit The Movie Database
    • Create an account and request an API key
    • Replace YOUR_TMDB_API_KEY_HERE in app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt
  3. Build and Run

    • Open the project in Android Studio
    • Sync Gradle files
    • Build and run on your device or emulator

Configuration

The app uses several configuration files:

  • gradle/libs.versions.toml - Dependency versions
  • app/build.gradle.kts - App-specific build configuration
  • app/src/main/java/com/rajveer/anitrack/data/remote/Constants.kt - API configuration

🏗 Project Structure

app/src/main/java/com/rajveer/anitrack/
├── data/
│ ├── local/ # Room database and DAOs
│ ├── remote/ # API service and responses
│ ├── repository/ # Data coordination layer
│ └── mapper/ # Data transformation
├── di/ # Dependency injection modules
├── ui/
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ ├── screens/ # Individual screen implementations
│ └── theme/ # App theming
└── MainActivity.kt # Main entry point

🔧 Development

Adding New Features

  1. Data Layer: Create models, DAOs, and repository methods
  2. UI Layer: Implement screens and components
  3. Navigation: Update navigation graph and routes
  4. Testing: Add unit tests and UI tests

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comprehensive documentation for public APIs
  • Implement proper error handling
  • Follow Material Design guidelines

📊 API Integration

The app currently integrates with:

  • TMDB (The Movie Database): Primary data source for shows, movies, and metadata
  • Future: Potential integration with AniList, TVDB, or other anime-specific APIs

API Endpoints Used

  • Search shows: /search/multi
  • Trending content: /trending/all/week
  • Popular TV shows: /tv/popular
  • Popular movies: /movie/popular
  • Show details: /tv/{id}
  • Movie details: /movie/{id}

🔒 Security & Privacy

  • User data is stored locally with encryption
  • API keys are stored securely (not in version control)
  • No personal data is shared with third parties
  • Offline-first approach ensures data privacy

🧪 Testing

Running Tests

# Unit tests
./gradlew test# Instrumented tests
./gradlew connectedAndroidTest

Test Coverage

  • Unit tests for ViewModels and Repositories
  • Integration tests for database operations
  • UI tests for critical user flows

📦 Building

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

APK Location

Generated APKs can be found in app/build/outputs/apk/

🚀 Deployment

Google Play Store

  1. Generate signed APK/AAB
  2. Update version code and name
  3. Upload to Play Console
  4. Submit for review

Internal Testing

  • Use Firebase App Distribution
  • Share APK directly with testers
  • Use Google Play internal testing track

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

🔮 Roadmap

Q1 2024

  • Project setup and architecture
  • Basic UI framework
  • API integration foundation
  • User authentication
  • Core watchlist functionality

Q2 2024

  • Community features
  • Review system
  • Forum implementation
  • Admin panel

Q3 2024

  • AI recommendations
  • Advanced analytics
  • Performance optimization
  • Beta testing

Q4 2024

  • Public release
  • User feedback integration
  • Feature refinement
  • Community expansion

Made with ❤️ for the anime and TV series community

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages