About the Project: MediMinder

🌟 Overview

MediMinder is a cross-platform mobile application designed to help users manage their daily medication routines efficiently. With support for Arabic, English, and Turkish, the app offers smart local notifications, intuitive medication scheduling, and an offline-first experience tailored for users around the world.


💡 Inspiration

The idea for MediMinder was born out of a simple observation: many people, especially the elderly and those with chronic conditions, struggle to maintain a consistent medication routine. Having seen this first-hand within my family and community, I was inspired to create a solution that empowers users to take control of their health, regardless of language, connectivity, or technical skill.


🔧 How I Built It

MediMinder was developed using the Expo SDK for its seamless cross-platform capabilities. The tech stack and architectural choices were made to ensure performance, accessibility, and maintainability.

🛠️ Key Tools & Technologies:

  • Expo (React Native) – Rapid development and testing on both iOS and Android
  • React Navigation – Smooth navigation between screens
  • AsyncStorage – Local data storage for offline-first functionality
  • Expo Notifications – Local notification system for dose reminders
  • i18n-js + react-i18next – Internationalization with RTL support for Arabic
  • Formik + Yup – Clean form validation and handling
  • Accessibility APIs – Inclusive UI for users with different needs

📱 Core Features

  • Daily Medication Schedule: Auto-sorted by time with visual indicators for taken/missed doses.
  • Medication Management: Add/edit/delete medications with calculated dose times based on frequency.
  • Smart Reminders: Local notifications trigger with "Taken" and "Skip" actions, and reasons for missed doses are logged.
  • Multilingual Support: Full localization for Arabic (RTL), English, and Turkish.
  • Customization Options: Notification, time, and language settings tailored to the user's preferences.
  • Offline-First Architecture: Data persists locally for uninterrupted use.

🚧 Challenges Faced

1. RTL Layout and Language Support

Implementing right-to-left (RTL) layout for Arabic required thoughtful component styling and dynamic layout direction changes depending on the selected language.

2. Notification Timing Logic

Creating flexible and reliable scheduling logic for multiple daily dosages without a backend was a complex task. I developed an algorithm to auto-calculate times based on user preferences and frequency rules.

3. Offline-First Architecture

Ensuring all features worked smoothly without internet connectivity required careful planning around data storage, caching, and state management.

4. Accessibility & Validation

Balancing form complexity with ease-of-use, while maintaining accessible interaction, was a constant priority. I focused on keyboard navigation, screen reader support, and input validation for a better user experience.


📘 What I Learned

  • Localization isn't just about translating words—it’s about adapting the user experience to different cultural and directional norms.
  • Offline-first architecture requires deliberate planning—especially when syncing reminders with device clocks and ensuring persistence.
  • Good UX is inclusive UX—thinking through accessibility features early saved a lot of time in the long run.
  • Expo is powerful but has limits—working within those constraints helped me become more resourceful and efficient.

🔍 What’s Next?

Future versions of MediMinder will explore:

  • Cloud sync and backup features
  • Health analytics and compliance reports
  • Support for caregivers or shared access
  • Integration with wearables or system health apps

🙌 Final Thoughts

Building MediMinder has been a meaningful journey, combining technical problem-solving with a purpose-driven goal to support personal well-being. I hope it makes a small but real difference in users’ daily lives.

Built With

Share this project:

Updates