A React Native mobile application designed to help users maintain a consistent habit of doing the Sehaj Path daily. The app provides a digital platform for tracking reading progress, managing multiple reading sessions, and maintaining reading streaks.
Sehaj Path is a traditional Sikh practice of reading the complete Guru Granth Sahib Ji (the holy scripture) over a period of time. This app digitizes this spiritual practice by providing:
- Progress Tracking: Monitor your reading progress through 1430 Angs
- Multiple Paths: Manage multiple reading sessions simultaneously
- Reading Analytics: View completion dates, reading streaks, and progress statistics
- Customizable Reading Experience: Adjustable font sizes, reading formats, and navigation
- Home Dashboard: Overview of all reading paths with progress indicators
- Reading Interface: Clean, distraction-free reading experience with Gurbani text
- Progress Management: Automatic saving of reading position and progress
- Path Navigation: Easy navigation between different Angs and reading sessions
- Completion Tracking: Automatic detection and celebration of completed paths
- Font Size Customization: Adjustable text size for comfortable reading
- Larivaar Support: Option to read in continuous text format
- Punjabi/English Numbers: Toggle between Punjabi and English number formats
- Auto-scroll: Automated reading progression with pause/resume functionality
- Swipe Navigation: Gesture-based navigation between pages
- Local Storage: All data stored locally using AsyncStorage
- Progress Persistence: Automatic saving of reading position and progress
- Path Renaming: Customize path names for better organization
- Reading History: Track daily reading progress and completion dates
my-sehaj-path-app/
βββ android/ # Android-specific configuration
βββ ios/ # iOS-specific configuration
βββ assets/ # Images, fonts, and static resources
βββ components/ # Reusable UI components
β βββ Settings/ # Settings-specific components
β βββ index.ts # Component exports
βββ constants/ # Application constants and configurations
βββ hooks/ # Custom React hooks
βββ icons/ # SVG icons and graphics
βββ screens/ # Main application screens
βββ styles/ # Component-specific styling
βββ utils/ # Utility functions and database helpers
βββ __tests__/ # Test files
βββ App.tsx # Main application component
βββ index.ts # Application entry point
βββ package.json # Dependencies and scripts
- SplashScreen: Initial loading screen
- HomeScreen: Main dashboard showing all reading paths
- ContinueScreen: Resume reading from saved position
- PathScreen: Main reading interface with Gurbani text
- Settings: App configuration and preferences
- Error: Error handling screen
- AngsNavigation: Navigation between different Angs
- Calendar: Reading streak and progress visualization
- PrimaryCard/SecondaryCard: Path display cards
- Slider: Horizontal scrolling for multiple paths
- PrimaryButton/SecondaryButton: Action buttons
- Text Components: Various text display components (Headline, Label, etc.)
- useLocal: Local storage management and data persistence
- useInternet: Network connectivity monitoring
- Node.js >= 18
- React Native development environment
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
-
Clone the repository
git clone <repository-url> cd my-sehaj-path-app
-
Install dependencies
yarn install
-
iOS Setup (macOS only)
cd ios pod install cd ..
-
Start Metro bundler
yarn start
-
Run the application
For Android:
npx react-native run-android # or yarn androidFor iOS:
npx react-native run-ios # or yarn ios
- Open the app and tap "START" on the home screen
- A new reading path will be created automatically
- You'll be taken to the reading interface starting from Ang 1
- On the home screen, you'll see "Sehaj Path in Progress" section
- Tap on any path card to resume reading from your last position
- Your progress is automatically saved as you read
- Navigation: Use left/right arrow buttons to move between Angs
- Auto-scroll: Enable auto-scroll for continuous reading
- Font Size: Adjust text size in Settings for comfortable reading
- Larivaar: Toggle between regular and continuous text format
- Progress: View your current Ang number and completion percentage
- Start multiple reading sessions simultaneously
- Each path tracks progress independently
- Rename paths for better organization
- View completion dates for finished paths
- Font Size: Choose from Small, Medium, Large, or Extra Large
- Number Format: Switch between Punjabi and English numbers
- Larivaar: Enable/disable continuous text format
- Path Management: Rename existing paths
The app uses several key dependencies:
- React Navigation: For screen navigation
- AsyncStorage: For local data persistence
- React Native Elements: For UI components
- Axios: For network requests
- Day.js: For date manipulation
- Total Angs: 1430 (complete Guru Granth Sahib Ji)
- Default Font Size: 18px
- Default Number Format: Punjabi
Run the test suite:
yarn testcd android
./gradlew assembleReleasecd ios
xcodebuild -workspace SehajPathApp.xcworkspace -scheme SehajPathApp -configuration Release- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with React Native
- Gurbani database integration
- Sikh community feedback and testing
- Open source contributors
For support, questions, or feature requests, please open an issue in the repository.
Waheguru Ji Ka Khalsa, Waheguru Ji Ki Fateh ππ½