Notify is a cross-platform mobile application built with React Native and Expo. It helps users manage their medication schedules, receive timely reminders, track medication history, and monitor refills. The app is designed for ease of use, security, and reliability, making it an ideal companion for anyone who needs to take medications regularly.
- Biometric or PIN Authentication: Secure access using Face ID, Touch ID, or PIN.
- Medication Management: Add, edit, and delete medications with details like dosage, frequency, duration, and notes.
- Smart Reminders: Receive push notifications for each scheduled dose.
- Calendar View: Visualize your medication schedule and history on a monthly calendar.
- Dose Tracking: Mark doses as taken and view your daily progress.
- Refill Tracker: Monitor medication supply and get alerts when it's time to refill.
- History Log: Review your medication intake history and clear all data if needed.
- Modern UI: Clean, accessible, and responsive design with support for light and dark modes.
- React Native: Core framework for building native mobile apps using JavaScript and React.
- Expo: Toolchain and platform for universal React Native apps (development, build, and deployment).
- TypeScript: Strongly-typed language for safer and more robust code.
- Expo Router: File-based routing for navigation.
- AsyncStorage: Local storage for persisting medication and dose data.
- Expo Notifications: Push notification scheduling and handling.
- Expo Local Authentication: Biometric authentication (Face ID, Touch ID, etc.).
- @react-native-community/datetimepicker: Native date and time pickers.
- Ionicons: Icon library for consistent UI.
- Jest & jest-expo: Testing framework for unit and integration tests.
- React Native Reanimated: Smooth and performant animations.
- Expo Linear Gradient & Blur: Visual effects for modern UI.
- Splash Screen: Animated intro with app branding.
- Authentication: Biometric or PIN login for security.
- Home: Daily progress, quick actions, and today's medications.
- Add Medication: Form to add new medications with reminders and refill options.
- Calendar: Monthly view of medication schedule and dose history.
- History: Log of all taken doses and option to clear data.
- Refills: Track and record medication refills.
- Clone the repository:
git clone <repo-url> cd Notify/
- Install dependencies:
yarn install # or npm install
- Start the development server:
yarn start # or npm start # or expo start
- Run on your device or emulator:
- For Android:
yarn android
orexpo start --android
- For iOS:
yarn ios
orexpo start --ios
- For Web:
yarn web
orexpo start --web
- For Android:
app/ # App screens and navigation
assets/ # Images, fonts, and static assets
components/ # Reusable UI components
constants/ # App-wide constants (e.g., colors)
hooks/ # Custom React hooks
utils/ # Utility functions (storage, notifications)
scripts/ # Project scripts (e.g., reset-project.js)
package.json # Project metadata and dependencies
app.json # Expo app configuration
tsconfig.json # TypeScript configuration
yarn.lock # Dependency lockfile
yarn start
/npm start
/expo start
: Start the Expo development serveryarn android
/yarn ios
/yarn web
: Run the app on Android, iOS, or Webyarn test
: Run testsyarn lint
: Lint the codebaseyarn reset-project
: Reset the project to a blank state (seescripts/reset-project.js
)
- The app's internal name in some config files is
bycicle-rental-app
, but the actual product is MedRemind (Medicine Reminder App). - All medication and dose data is stored locally on the device using AsyncStorage.
- Push notifications require permissions and may not work on all emulators.
- For biometric authentication, your device must support Face ID or Touch ID.
- Built with React Native and Expo
- Icons by Ionicons
- Calendar and date/time pickers by @react-native-community/datetimepicker
- Special thanks to the open-source community!
This project is licensed under the MIT License. See LICENSE for details.