A modern Android application for browsing, downloading, and reading free Tamil eBooks. Built with Jetpack Compose and following Clean Architecture principles.
- 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
This app follows Clean Architecture principles with MVVM pattern:
- Presentation Layer: Jetpack Compose UI, ViewModels, Navigation
- Domain Layer: Use Cases, Domain Models, Business Logic
- Data Layer: Repositories, Local & Remote Data Sources
- 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
- Kotlin - Modern programming language
- Jetpack Compose - Declarative UI toolkit
- Material 3 - Latest Material Design
- Navigation Compose - Type-safe navigation
- ViewModel & LiveData - MVVM architecture components
- Room - Local database (v2.7.2)
- DataStore - Modern SharedPreferences replacement
- Retrofit - REST API client (v3.0.0)
- Gson - JSON serialization
- Dagger Hilt - Dependency injection framework
- Coil - Modern image loading library (v3.2.0)
- Lottie - Animation library (v6.6.7)
- Material Icons Extended - Comprehensive icon set
- PRDownloader - Advanced download library
- Accompanist Permissions - Permission handling
- Readium Kotlin Toolkit (v3.1.1) - Professional EPUB reader
- Media3 - Media playback for TTS features
- Timber - Enhanced logging
- Detekt - Static code analysis
- KSP - Kotlin Symbol Processing
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
- Android Studio Arctic Fox or later
- JDK 17+
- Android SDK 26+ (minimum)
- Gradle 8.11.1
-
Clone the repository
git clone https://github.com/your-username/FreeTamilEBooks.git cd FreeTamilEBooks -
Open in Android Studio
- Open Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Build the project
./gradlew build
-
Run the app
- Connect an Android device or start an emulator
- Click "Run" in Android Studio or use:
./gradlew installDebug
The project uses Detekt for static code analysis:
./gradlew detekt- 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
- 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
- Background Downloads: Continue downloads in background
- Progress Tracking: Real-time download progress
- Notification Support: Download status notifications
- Storage Management: Efficient file organization
- Professional Reading: Powered by Readium Toolkit
- Customization: Font size, theme, and reading preferences
- TTS Support: Text-to-speech functionality
- Bookmarks & Highlights: Reading progress tracking
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
This project is part of the FreeTamilEBooks initiative, which provides free Tamil literature under Creative Commons license.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Write unit tests for new features
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.
- 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
- Email: [email protected]
- Website: FreeTamilEbooks.com
- 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
