A bill tracking and habits tracker mobile app built with React Native and Expo
- π° Bill Tracking - Manage and track your bills efficiently
- π― Habit Tracking - Monitor your daily habits and routines
- π§ Hydration Reminders - Stay hydrated with smart notifications
- π Calendar View - Visualize your tracking data over time
- π Multi-Language Support - Available in English, French, and Arabic
- π Dark Mode - Eye-friendly interface with automatic theme detection
- π Dashboard - Get insights into your progress and activity patterns
- Framework: React Native with Expo
- Language: TypeScript
- State Management: React Context API
- Navigation: React Navigation
- Styling: React Native built-in styles with linear gradients
- Storage: AsyncStorage
- Notifications: Expo Notifications
- Node.js (v20.19.4 or higher recommended)
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/yourusername/nudgepal.git cd nudgepal -
Install dependencies
npm install --force --legacy-peer-deps
Note: The
--forceand--legacy-peer-depsflags are used due to peer dependency version conflicts. -
Start the development server
npm start
# Start the Expo dev server
npm start
# Then choose one of:
# Press 'w' to open web version
# Press 'a' to open Android
# Press 'i' to open iOS
# Scan QR code with Expo Go appnpm start- Start development servernpm run start:clear- Start with cleared cachenpm run start:offline- Start in offline modenpm run android- Run on Androidnpm run ios- Run on iOSnpm run web- Run on web
nudgepal/
βββ src/
β βββ components/ # Reusable UI components
β β βββ BillCard/
β β βββ BottomNavigation.tsx
β β βββ SharedHeader.tsx
β β βββ SideMenu.tsx
β βββ screens/ # App screens/pages
β β βββ DashboardScreen.tsx
β β βββ MyBillsScreen.tsx
β β βββ HabitsScreen.tsx
β β βββ HydrationScreen.tsx
β β βββ ...
β βββ contexts/ # React Context providers
β β βββ AppContext.tsx
β β βββ BillsContext.tsx
β β βββ ThemeContext.tsx
β βββ services/ # Business logic
β β βββ billService.ts
β β βββ adaptiveBudgetService.ts
β βββ utils/ # Utility functions
β β βββ billCalculations.ts
β β βββ currencyService.ts
β β βββ notificationService.ts
β β βββ rtlUtils.ts
β βββ hooks/ # Custom React hooks
β β βββ useTranslation.ts
β βββ i18n/ # Internationalization
β β βββ en.json
β β βββ fr.json
β β βββ ar.json
β βββ navigation/ # Navigation setup
βββ assets/ # Images, icons, and static files
βββ app.json # Expo configuration
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript configuration
NudgePal supports multiple languages:
- π¬π§ English
- π«π· French
- πΈπ¦ Arabic (with RTL support)
Language files are located in src/i18n/
The app supports:
- Light theme
- Dark theme
- Automatic detection based on system settings
The app uses Expo Notifications for:
- Bill payment reminders
- Hydration reminders
- Habit tracking notifications
Note: Push notification functionality is limited in Expo Go. For full functionality, use a development build.
- Expo Notifications has limited functionality in Expo Go (SDK 53+). Use a development build for full support.
- Package version warnings for
expo@54.0.13andreact-native-worklets@0.5.1- these are minor compatibility warnings.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Achraf (CODINXPRO)
For support, reach out to the project maintainers or open an issue on GitHub.
Made with β€οΈ for bill and habit tracking