Skip to content

sahiljaggarwal/genz-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š GenZ Reader

Version Platform License

A minimalist AI-powered EPUB reader for the Gen Z generation

Features β€’ Installation β€’ Usage β€’ Tech Stack β€’ Contributing


✨ Features

πŸ“– Core Reading Experience

  • EPUB Support: Import and read EPUB books seamlessly
  • Progress Tracking: Visual progress bars for each book
  • Customizable Themes: Light, Dark, and Sepia reading modes
  • Font Customization: Adjust font size (80-200%) for comfortable reading
  • Bookmarks: Save important pages for quick access

πŸ€– AI-Powered Translation

  • Hinglish Translation: Translate English text to conversational Hinglish (Roman script)
  • Hindi Translation: Translate to modern, everyday Hindi (Devanagari)
  • Multi-Provider Support:
    • OpenAI (GPT-3.5)
    • Google Gemini (2.0 Flash)
    • DeepSeek
    • Groq (Free)
    • Grok
    • Custom API endpoints
  • BYOK (Bring Your Own Key): Use your own API keys for privacy and control
  • Smart Translation: Focuses on simple, daily conversation language

🎨 User Interface

  • Dark Mode: Full app-wide dark theme support
  • System Theme: Automatically adapts to device theme
  • Minimalist Design: Clean, distraction-free reading interface
  • Responsive Layout: Optimized for various screen sizes

πŸ“ Reading Tools

  • Text Selection: Select text to translate, copy, or share
  • Quote Sharing: Create beautiful quote cards to share on social media
  • Draggable AI Box: Movable translation overlay for convenience
  • Copy to Clipboard: Quick copy functionality for selected text

πŸ“š Library Management

  • Book Import: Easy EPUB file import from device storage
  • Book Deletion: Long-press to delete books (with confirmation)
  • Reading Progress: Track completion percentage for each book
  • Last Read Tracking: See when you last opened each book

πŸš€ Installation

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo CLI (npm install -g expo-cli)
  • EAS CLI (npm install -g eas-cli) for building

Setup

  1. Clone the repository
git clone https://github.com/sahiljaggarwal/genz-reader.git
cd genz-reader
  1. Install dependencies
npm install
  1. Start the development server
npx expo start
  1. Run on device/emulator
  • Press a for Android
  • Press i for iOS
  • Scan QR code with Expo Go app

πŸ“± Building for Production

Android APK (Preview Build)

eas build --platform android --profile preview

Android AAB (Play Store)

eas build --platform android --profile production

iOS (App Store/TestFlight)

eas build --platform ios --profile production

🎯 Usage

Adding Books

  1. Tap the + icon in the header
  2. Select an EPUB file from your device
  3. Book will be added to your library automatically

Reading Books

  1. Tap on any book card to open it
  2. Swipe or tap to navigate pages
  3. Your progress is saved automatically

Using AI Translation

  1. Select any text while reading
  2. Choose Hinglish or Hindi from the menu
  3. Translation appears in a draggable box
  4. Tap outside or close button to dismiss

Configuring AI

  1. Go to Settings (gear icon)
  2. Select your preferred AI provider
  3. Enter your API key
  4. Choose language mode (Hinglish/Hindi)

Customizing Reading Experience

  1. Open Settings
  2. Adjust:
    • Reading theme (Light/Sepia/Dark)
    • Font size (80-200%)
    • App theme (Light/Dark/System)

πŸ›  Tech Stack

Frontend

  • React Native (0.81.5) - Mobile framework
  • Expo (~54.0) - Development platform
  • TypeScript (~5.9) - Type safety

Navigation & Routing

  • Expo Router (~6.0) - File-based routing

State Management

  • Zustand (^5.0) - Lightweight state management

Storage

  • AsyncStorage (2.2.0) - Local data persistence
  • Expo File System - EPUB file management

UI Components

  • Lucide React Native - Icon library
  • React Native WebView - EPUB rendering
  • React Native View Shot - Quote card generation

AI Integration

  • OpenAI API
  • Google Gemini API
  • DeepSeek API
  • Groq API
  • Grok API

πŸ“‚ Project Structure

genz-reader/
β”œβ”€β”€ app/                    # Expo Router pages
β”‚   β”œβ”€β”€ index.tsx          # Home screen (library)
β”‚   β”œβ”€β”€ reader/[id].tsx    # EPUB reader
β”‚   β”œβ”€β”€ settings.tsx       # Settings screen
β”‚   └── about.tsx          # About screen
β”œβ”€β”€ components/            # Reusable components
β”‚   └── reader/           # Reader-specific components
β”‚       β”œβ”€β”€ SelectionMenu.tsx
β”‚       β”œβ”€β”€ DraggableAIBox.tsx
β”‚       └── QuoteShareModal.tsx
β”œβ”€β”€ services/             # Business logic
β”‚   β”œβ”€β”€ ai/              # AI translation services
β”‚   └── storage/         # Local storage utilities
β”œβ”€β”€ stores/              # Zustand state stores
β”‚   β”œβ”€β”€ useBookStore.ts
β”‚   └── useSettingsStore.ts
β”œβ”€β”€ types/               # TypeScript type definitions
└── assets/              # Images and fonts

🎨 Features in Detail

AI Translation Prompts

Hinglish Mode

  • Uses simple, daily conversation language
  • Keeps common English words (tired, happy, sad, etc.)
  • Avoids heavy/literary Hindi words
  • Targets 15-year-old comprehension level
  • Allows Indian cultural references (cricket, Bollywood)

Hindi Mode

  • Modern, everyday Hindi (Devanagari script)
  • Avoids Sanskrit-heavy or literary Hindi
  • Writes common English words in Hindi style
  • Simple and clear sentences

πŸ”§ Configuration

AI Provider Setup

  1. OpenAI

  2. Google Gemini

    • Get API key from ai.google.dev
    • Model: gemini-2.0-flash (fallback: gemini-pro)
  3. DeepSeek

  4. Groq (Free)

  5. Grok

    • Get API key from x.ai
    • Model: grok-beta

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

πŸ“„ License

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


πŸ‘¨β€πŸ’» Author

Sahil Jaggarwal


πŸ™ Acknowledgments

  • Built with ❀️ in India
  • Powered by Expo and React Native
  • AI translation by OpenAI, Google Gemini, and others
  • Icons by Lucide

πŸ“Έ Screenshots

Add screenshots here to showcase your app


πŸ—Ί Roadmap

  • Highlight and annotation support
  • Cloud sync for reading progress
  • PDF support
  • Text-to-speech
  • Reading statistics and insights
  • Book recommendations
  • Social features (reading clubs)

If you find this project helpful, please give it a ⭐️!

Made with πŸ“š and β˜• by Sahil Jaggarwal

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors