mediCare is a comprehensive mobile application built with React Native and Expo, designed to streamline the process of finding and booking medical appointments. It offers a user-friendly interface for patients to connect with doctors, view their profiles, and manage their health journey.
- User Authentication: Secure sign-up and login functionality for patients.
- Doctor Discovery: Browse a list of doctors and view detailed profiles, including their specialties.
- Specialty-Based Search: Filter doctors by their medical specialties.
- Appointment Booking: Easily book appointments with available doctors.
- Appointment Management: View and manage upcoming and past appointments.
- Blog/Health Feed: Stay informed with the latest health articles and blogs.
- User Profiles: Manage personal information and view appointment history.
- Framework: React Native with Expo
- Routing: Expo Router
- UI Components: React Native components, Expo Blur, Expo Vector Icons
- Authentication: Expo Auth Session, Async Storage, Secure Store
- HTTP Client: Axios
- Linting: ESLint
- Language: TypeScript
- Node.js (LTS version recommended)
- Expo CLI
-
Clone the repository:
git clone https://github.com/emmamayne23/mediCare.git cd mediCare -
Install dependencies:
npm install
-
Start the development server:
npm start
This will open the Expo Dev Tools in your browser. You can then run the app on:
- An Android emulator or device by selecting "Run on Android device/emulator".
- An iOS simulator or device by selecting "Run on iOS simulator".
- In the web browser by selecting "Run in web browser".
In the project directory, you can run the following commands:
npm start: Runs the app in development mode.npm run android: Runs the app on a connected Android device or emulator.npm run ios: Runs the app on the iOS simulator.npm run web: Runs the app in a web browser.npm run lint: Lints the project files using ESLint.
The project follows a feature-based directory structure, primarily organized within the app directory using Expo's file-based routing.
mediCare/
├── app/
│ ├── (auth)/ # Group for authentication-related screens
│ │ ├── login.tsx
│ │ └── signup.tsx
│ ├── appointments/ # Screens for managing appointments
│ │ ├── [id]/index.tsx # View appointment details
│ │ ├── book/[id]/index.tsx # Book a new appointment
│ │ └── ...
│ ├── blogs/ # Screens for viewing blogs
│ ├── doctors/ # Screens for doctor listings and profiles
│ ├── profile/ # User profile screen
│ ├── specialties/ # Screens for browsing medical specialties
│ ├── _layout.tsx # Root layout for the application
│ └── index.tsx # Home screen of the app
├── assets/ # Static assets like images and fonts
├── components/ # Reusable UI components
├── constants/ # Global constants
├── interfaces/ # TypeScript interfaces and type definitions
├── utils/ # Utility functions, e.g., authentication logic
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
Contributions are welcome! Please feel free to submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.


