Skip to content

41vi4p/MediStock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Š MediStock - Mobile App

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.

✨ Features

🏠 Family Medicine Management

  • 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

πŸ’Š Medicine Tracking

  • 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

πŸ” Search & Filtering

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

πŸ›’ Shopping List

  • Add Items with priority (low/medium/high) and category
  • Mark Complete with toggle
  • Family-shared list with attribution

πŸ“‹ Activity Logs

  • Track All Actions (medicine added/deleted, members joined, etc.)
  • Icon-coded log entries
  • Family-wide visibility

πŸŒ“ Theme Support

  • Light Mode / Dark Mode / System toggle
  • Persisted preference via AsyncStorage
  • Full adaptation of all UI elements

πŸ” Authentication

  • Email/Password sign in and sign up
  • Google Sign-In via Firebase Auth
  • Auto-redirect based on auth state

πŸš€ Tech Stack

  • 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

⚑ Quick Start

1. Install Dependencies

cd MediStock
npm install

2. Configure Firebase

Copy 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_id

3. Run

npx expo start

πŸ“ Project Structure

src/
β”œβ”€β”€ 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

πŸ“± Screens

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

πŸ”§ Scripts

npx expo start          # Start dev server
npx expo start --android  # Android
npx expo start --ios      # iOS
npx expo start --web      # Web

πŸ“„ License

MIT License


Made with ❀️ for better medicine management

About

πŸ’Š Modern App for managing home medicine inventory with family sharing, expiry tracking, out-of-stock management, and shopping lists. Features mobile-first responsive design, 6-character family codes, and real-time synchronization. Built with Next.js, TypeScript & Firebase.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Contributors