This is an educational mobile application built with Expo and React Native, designed to provide an interactive learning experience through structured chapters and exercises.
BookApp is a comprehensive learning platform that features:
- 33 interactive chapters covering various topics
- Multiple types of learning exercises
- Word lookup functionality with translations
- Interactive tables and matching exercises
- Audio pronunciation support
- Bilingual support (English and Bengali)
BookApp/
├── app/ # Main application screens
│ ├── index.tsx # Chapter list screen
│ ├── chapters/[id].tsx # Individual chapter screen
│ └── WordDetails.tsx # Word lookup screen
├── components/ # Reusable components
│ ├── blocks/ # Exercise block components
│ └── common/ # Common UI components
├── data/ # Data files
│ ├── chapters.js # Chapter content
│ └── data.json # Additional data
└── assets/ # Static assets
The application uses a structured data format for chapters stored in data/chapters.js. Each chapter contains:
- Title and lesson information
- Multiple exercise blocks
- Various content types (text, questions, tables, etc.)
The application supports multiple types of interactive exercises:
- Editable Tables: Interactive tables where users can add/edit data
- Matching Exercises: Column-based matching activities
- Fill-in-the-Blanks: Text completion exercises
- Multiple Choice Questions: Selection-based questions
- Free Answer Questions: Open-ended responses
- Poems: Interactive poems with translations
- Conversations: Dialogue-based learning exercises
- Language Focus: Grammar and vocabulary exercises ... and countless more exciting exercises to discover! ✨
The app integrates with external APIs for word definitions:
- Dictionary API for word meanings and examples
- Google Translate API for Bengali translations
- Audio pronunciation support through Expo's Audio API
- React's useState and useEffect hooks for local state management
- Expo Router for navigation and screen management
- Component-level state for interactive exercises
- Chapter data is loaded from static files
- User interactions are handled through component state
- External API calls for word lookup and translations
- Persistent data handling for user progress
- File-based routing with Expo Router
- Responsive design for various screen sizes
- Dark/Light theme support
- Offline-first architecture
- Modular component structure
-
Install dependencies
npm install
-
Start the development server
npx expo start
-
Run on your preferred platform:
- iOS Simulator
- Android Emulator
- Physical device through Expo Go
- Edit
data/chapters.jsto add new chapters - Use the predefined block types for exercises
- Follow the existing data structure for consistency
- Add new components in the
componentsdirectory - Register new block types in
RenderBlock.tsx - Update type definitions as needed