Skip to content

CODINXPRO/NudgePal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 NudgePal

A bill tracking and habits tracker mobile app built with React Native and Expo

License: MIT React Native Expo

πŸ“± Features

  • πŸ’° 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

πŸ› οΈ Tech Stack

  • 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

πŸ“¦ Installation

Prerequisites

  • Node.js (v20.19.4 or higher recommended)
  • npm or yarn
  • Git

Steps

  1. Clone the repository

    git clone https://github.com/yourusername/nudgepal.git
    cd nudgepal
  2. Install dependencies

    npm install --force --legacy-peer-deps

    Note: The --force and --legacy-peer-deps flags are used due to peer dependency version conflicts.

  3. Start the development server

    npm start

πŸš€ Running the App

Development Mode

# 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 app

Available Scripts

  • npm start - Start development server
  • npm run start:clear - Start with cleared cache
  • npm run start:offline - Start in offline mode
  • npm run android - Run on Android
  • npm run ios - Run on iOS
  • npm run web - Run on web

πŸ“ Project Structure

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

🌐 Internationalization

NudgePal supports multiple languages:

  • πŸ‡¬πŸ‡§ English
  • πŸ‡«πŸ‡· French
  • πŸ‡ΈπŸ‡¦ Arabic (with RTL support)

Language files are located in src/i18n/

🎨 Theming

The app supports:

  • Light theme
  • Dark theme
  • Automatic detection based on system settings

πŸ”” Notifications

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.

πŸ› Known Issues

  • Expo Notifications has limited functionality in Expo Go (SDK 53+). Use a development build for full support.
  • Package version warnings for expo@54.0.13 and react-native-worklets@0.5.1 - these are minor compatibility warnings.

🀝 Contributing

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

πŸ“ License

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

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

Achraf (CODINXPRO)

πŸ“§ Support

For support, reach out to the project maintainers or open an issue on GitHub.


Made with ❀️ for bill and habit tracking

About

πŸ“± Bill tracking and habit monitoring mobile app built with React Native

Topics

Resources

License

Contributing

Stars

Watchers

Forks