Skip to content

di-su/BP

Repository files navigation

Bearable - Mood & Sleep Tracker

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.

Features

  • 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.

Tech Stack

  • 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

Getting Started

Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • 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)

Installation

  1. Clone the repository (if applicable) or navigate to your project directory.
  2. Install the dependencies:
    npm install
    # or
    yarn install

Running the Application

  • 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

Running Tests

Execute the automated tests using Jest:

npm test
# or
yarn test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published