A React Native (Expo) application designed to help users track their mood and sleep patterns, providing insights through data visualization and offering a personalized experience with customizable settings.
- Mood Tracking: Log daily moods with varying intensities and optional notes.
- Sleep Tracking: Record sleep duration and quality.
- Data Visualization: View trends and patterns in mood and sleep data through interactive charts.
- Customizable Settings: Tailor the app to your preferences.
- Haptic Feedback: Enhanced user experience with tactile feedback on interactions.
- Standardized UI Components: A consistent and polished user interface.
- Notifications: In-app toast and full-screen notifications for user feedback.
- Today Indicators: Visual cues on the main screen if mood/sleep has been logged for the current day.
- Core Framework: React Native (with Expo)
- Language: TypeScript
- State Management: Redux Toolkit
- Navigation: Expo Router
- UI Components:
- Gorhom Bottom Sheet
- React Native Chart Kit
- Lottie for animations
- Expo Vector Icons
- NativeWind (for Tailwind CSS utility-first styling)
- Date/Time: date-fns
- Testing: Jest, React Native Testing Library
- Code Formatting: Prettier (with
prettier-plugin-organize-imports) - Persistent Storage: AsyncStorage
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Node.js (LTS version recommended)
- npm (comes with Node.js) or Yarn
- Expo CLI:
npm install -g expo-cli - For native builds (Android/iOS):
- Android Studio (for Android)
- Xcode (for iOS, macOS only)
- Clone the repository (if applicable) or navigate to your project directory.
- Install the dependencies:
npm install # or yarn install
-
Start the Metro Bundler and see run options:
npm start # or yarn start # or npx expo start
This will open a development server. You can then scan the QR code with the Expo Go app on your phone or run on an emulator/simulator.
-
Run on Android:
npm run android # or yarn android -
Run on iOS:
npm run ios # or yarn ios -
Run in a web browser:
npm run web # or yarn web
Execute the automated tests using Jest:
npm test
# or
yarn test