A comprehensive mobile application designed to support mothers through their parenting journey. This app provides tools for tracking activities, managing self-care, accessing guidance, and monitoring progress.
- Authentication System: Secure login, signup, password reset, and email verification
- Activity Tracking: Log and monitor daily activities and situations
- Progress Monitoring: Track achievements and view progress over time
- Self-Care Tools: Resources and reminders for maternal well-being
- Guidance Content: Tips and information for various parenting scenarios
- Streak Tracking: Maintain motivation through streak counters
- Subscription Options: Access to premium features and content
- Frontend: React Native with Expo
- Navigation: Expo Router for file-based routing
- Database: Supabase for backend storage
- Authentication: Custom authentication system with Supabase
- State Management: React Context API
- UI Components: Custom components with responsive design
- Node.js (v14+)
- npm or yarn package manager
- Expo CLI (
npm install -g expo-cli) - iOS Simulator (Mac only) or Android Emulator (optional)
- Supabase account for database functionality
-
Clone the repository:
git clone https://github.com/safio/mom-support.git cd mom-support -
Install dependencies:
npm install # or yarn install -
Environment Setup: Create a
.envfile in the root directory with the following variables:EXPO_PUBLIC_SUPABASE_URL=your_supabase_url EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key -
Run the app:
npx expo start
This will open Expo Dev Tools in your browser. You can then run the app on:
- An Android emulator/device (press
a) - An iOS simulator/device (press
i) - Web browser (press
w)
- An Android emulator/device (press
app/: Contains the screens and navigation logic using Expo Router(auth)/: Authentication-related screens(subscription)/: Subscription management screens(tabs)/: Main app tab screens including home, guidance, progress, etc.
assets/: Static assets like images and fontscomponents/: Reusable UI componentsActivityModal.jsx: Modal for activity creation/editingButton.jsx: Custom button componentCard.jsx: Card component for displaying informationStreakDisplay.jsx: Component for displaying user streaks
constants/: Global constants like colors or configurationcontexts/: React Context API providersAuthContext.js: Authentication state managementDatabaseContext.jsx: Database interaction management
database/: SQL scripts and database related fileslib/: Utility functions and helper librariessupabase.js: Supabase client configurationdatabase.js: Database utility functionsuuid-helper.js: UUID generation utilities
The application uses Supabase as its database solution. The database schema includes tables for:
- Users and authentication
- Activities and completion tracking
- Streaks and progress information
- User preferences and settings
Database scripts can be found in the database/ directory.
The app can be built for production using Expo's build service:
expo build:android # For Android builds
expo build:ios # For iOS buildsPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please ensure that appropriate tests are updated as needed.