Version 2.2.0 - A comprehensive mobile application for managing home medicine inventory with expiry tracking, family sharing, and intelligent notifications. Built with Expo, React Native, TypeScript, and Firebase.
- Family Groups with 6-character join codes
- Optional Password Protection (bcrypt-encrypted)
- Role-Based Access (Admin/Member)
- Real-time Sync across all family members
- Code Regeneration and password management
- Add/Delete Medicines with full details
- Expiry Monitoring with color-coded indicators (green/yellow/red)
- Smart Categories (Pain Relief, Antibiotics, Vitamins, etc.)
- Location Tracking (Medicine Cabinet, Refrigerator, etc.)
- Out of Stock marking and tracking
- Text Search by name, description, or category
- Category Filters with horizontal chip selection
- Status Filters (All, In Stock, Out of Stock, Expired, Expiring Soon)
- Sort Options (Expiry Date, Name, Quantity, Category)
- Add Items with priority (low/medium/high) and category
- Mark Complete with toggle
- Family-shared list with attribution
- Track All Actions (medicine added/deleted, members joined, etc.)
- Icon-coded log entries
- Family-wide visibility
- Light Mode / Dark Mode / System toggle
- Persisted preference via AsyncStorage
- Full adaptation of all UI elements
- Email/Password sign in and sign up
- Google Sign-In via Firebase Auth
- Auto-redirect based on auth state
- Framework: Expo SDK 55, React Native 0.83
- Navigation: Expo Router (file-based)
- Backend: Firebase Firestore, Firebase Auth
- Icons: @expo/vector-icons (Ionicons)
- State: React Context API
- Language: TypeScript
cd MediStock
npm installCopy your Firebase config into .env:
EXPO_PUBLIC_FIREBASE_API_KEY=your_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_app_idnpx expo startsrc/
βββ app/
β βββ _layout.tsx # Root layout (providers + auth routing)
β βββ (tabs)/
β β βββ _layout.tsx # Bottom tab navigation
β β βββ index.tsx # Dashboard
β β βββ search.tsx # Search & filter
β β βββ family.tsx # Family management
β β βββ settings.tsx # Settings & theme toggle
β βββ auth/
β β βββ signin.tsx # Sign in
β β βββ signup.tsx # Sign up
β βββ medicines/
β βββ add.tsx # Add medicine form
β βββ shopping.tsx # Shopping list
β βββ logs.tsx # Activity logs
βββ contexts/
β βββ AuthContext.tsx # Firebase auth state
β βββ FamilyContext.tsx # Family CRUD operations
β βββ ThemeContext.tsx # Dark/light theme toggle
βββ lib/
β βββ firebase.ts # Firebase initialization
β βββ activityLogger.ts # Activity log helper
β βββ utils.ts # Date/expiry utilities
βββ types/
βββ index.ts # TypeScript interfaces
| Screen | Description |
|---|---|
| Dashboard | Stats overview, medicine list, quick actions |
| Search | Full-text search with category/status/sort filters |
| Family | Create/join family, manage members and codes |
| Settings | Profile, theme toggle, navigation links |
| Add Medicine | Grouped form with bottom-sheet pickers |
| Shopping List | Priority-based shared shopping list |
| Activity Logs | Chronological family activity feed |
npx expo start # Start dev server
npx expo start --android # Android
npx expo start --ios # iOS
npx expo start --web # WebMIT License
Made with β€οΈ for better medicine management