Skip to content

krishnanIT/FreeTamilEBooks

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

41 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FTE Books - Free Tamil EBooks Android App

FTE Books Logo

A modern Android application for browsing, downloading, and reading free Tamil eBooks. Built with Jetpack Compose and following Clean Architecture principles.

πŸ“± Features

  • Browse Tamil EBooks: Explore a curated collection of free Tamil books
  • Search Functionality: Find books by title, author, or category
  • Offline Reading: Download books for offline access
  • EPUB Reader: Built-in EPUB reader with advanced features
  • Category Organization: Books organized by different categories
  • Download Management: Track download progress with notifications
  • Beautiful UI: Modern Material 3 design with Tamil font support

πŸ—οΈ Architecture

This app follows Clean Architecture principles with MVVM pattern:

Layers

  • Presentation Layer: Jetpack Compose UI, ViewModels, Navigation
  • Domain Layer: Use Cases, Domain Models, Business Logic
  • Data Layer: Repositories, Local & Remote Data Sources

Key Components

  • UI: Jetpack Compose with Material 3
  • Navigation: Navigation Compose with type-safe routing
  • DI: Dagger Hilt for dependency injection
  • Database: Room for local storage
  • Networking: Retrofit for API communication
  • EPUB Reading: Readium Toolkit integration

πŸ› οΈ Tech Stack

Core Android

  • Kotlin - Modern programming language
  • Jetpack Compose - Declarative UI toolkit
  • Material 3 - Latest Material Design
  • Navigation Compose - Type-safe navigation
  • ViewModel & LiveData - MVVM architecture components

Data & Storage

  • Room - Local database (v2.7.2)
  • DataStore - Modern SharedPreferences replacement
  • Retrofit - REST API client (v3.0.0)
  • Gson - JSON serialization

Dependency Injection

  • Dagger Hilt - Dependency injection framework

Image Loading & UI

  • Coil - Modern image loading library (v3.2.0)
  • Lottie - Animation library (v6.6.7)
  • Material Icons Extended - Comprehensive icon set

File & Download Management

  • PRDownloader - Advanced download library
  • Accompanist Permissions - Permission handling

EPUB Reading

  • Readium Kotlin Toolkit (v3.1.1) - Professional EPUB reader
  • Media3 - Media playback for TTS features
  • Timber - Enhanced logging

Development Tools

  • Detekt - Static code analysis
  • KSP - Kotlin Symbol Processing

πŸ“¦ Project Structure

app/
β”œβ”€β”€ src/main/java/com/jskaleel/fte/
β”‚   β”œβ”€β”€ core/                    # Core utilities and models
β”‚   β”œβ”€β”€ data/                    # Data layer
β”‚   β”‚   β”œβ”€β”€ model/              # Data models
β”‚   β”‚   β”œβ”€β”€ repository/         # Repository implementations
β”‚   β”‚   └── source/             # Data sources (local/remote)
β”‚   β”œβ”€β”€ di/                     # Dependency injection modules
β”‚   β”œβ”€β”€ domain/                 # Domain layer
β”‚   β”‚   β”œβ”€β”€ model/              # Domain models
β”‚   β”‚   └── usecase/            # Business logic use cases
β”‚   └── ui/                     # Presentation layer
β”‚       β”œβ”€β”€ navigation/         # Navigation setup
β”‚       β”œβ”€β”€ screens/            # UI screens
β”‚       β”œβ”€β”€ theme/              # App theming
β”‚       └── utils/              # UI utilities
└── res/                        # Resources (layouts, strings, assets)

epub/                           # EPUB reader module
β”œβ”€β”€ src/main/java/com/jskaleel/epub/
β”‚   β”œβ”€β”€ data/                   # EPUB data management
β”‚   β”œβ”€β”€ domain/                 # EPUB domain logic
β”‚   β”œβ”€β”€ drm/                    # DRM management
β”‚   β”œβ”€β”€ reader/                 # Core reading functionality
β”‚   └── utils/                  # EPUB utilities

πŸš€ Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • JDK 17+
  • Android SDK 26+ (minimum)
  • Gradle 8.11.1

Installation

  1. Clone the repository

    git clone https://github.com/your-username/FreeTamilEBooks.git
    cd FreeTamilEBooks
  2. Open in Android Studio

    • Open Android Studio
    • Select "Open an existing project"
    • Navigate to the cloned directory
  3. Build the project

    ./gradlew build
  4. Run the app

    • Connect an Android device or start an emulator
    • Click "Run" in Android Studio or use:
    ./gradlew installDebug

πŸ”§ Development

Code Quality

The project uses Detekt for static code analysis:

./gradlew detekt

Architecture Guidelines

  • Follow Clean Architecture principles
  • Use MVVM pattern for UI components
  • Implement Repository pattern for data access
  • Use Use Cases for business logic
  • Apply SOLID principles
  • Write unit tests for business logic

πŸ“š Key Features Deep Dive

Book Management

  • Synchronization: 24-hour automatic sync with remote repository
  • Offline-First: Local storage with Room database
  • Categories: Organized book browsing experience
  • Search: Full-text search across titles and authors

Download System

  • Background Downloads: Continue downloads in background
  • Progress Tracking: Real-time download progress
  • Notification Support: Download status notifications
  • Storage Management: Efficient file organization

EPUB Reader

  • Professional Reading: Powered by Readium Toolkit
  • Customization: Font size, theme, and reading preferences
  • TTS Support: Text-to-speech functionality
  • Bookmarks & Highlights: Reading progress tracking

🌍 Tamil Language Support

The app is specifically designed for Tamil language content:

  • Tamil Font: Custom Marutham font for better readability
  • Localized UI: Tamil strings and interface elements
  • Unicode Support: Full Tamil Unicode character support
  • Cultural Context: Designed for Tamil reading experience

🀝 Contributing

This project is part of the FreeTamilEBooks initiative, which provides free Tamil literature under Creative Commons license.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Write unit tests for new features

πŸ“„ License

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

The books available through this app are provided under Creative Commons licenses, ensuring free access to Tamil literature.

πŸ™ Acknowledgments

  • FreeTamilEbooks.com - Source of free Tamil literature
  • Readium Foundation - EPUB reading technology
  • Project Madurai - Tamil digitization efforts
  • Free Software Foundation Tamil Nadu - Open source advocacy
  • Yavarukkum Software Foundation - Community support

πŸ“ž Contact

πŸ”„ Build Information

  • Application ID: com.jskaleel.fte
  • Min SDK: 26 (Android 8.0)
  • Target SDK: 36
  • Compile SDK: 36
  • Version: 1.0

Made with ❀️ for Tamil Readers

About

android application for FreeTamilEbooks project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 83.9%
  • HTML 16.1%