Skip to content

Rajkumar-Khatua/Appointment-Booking-app-

Repository files navigation

Doctor Appointment Booking Project

Overview

The Doctor Appointment Booking project is a web and mobile application that simplifies the process of scheduling medical appointments with various healthcare providers. This project employs a full-stack technology stack, with the frontend developed using React Native and the backend built using MongoDB, Express, and Node.js.

Features

  • User Registration and Authentication: Users can securely create accounts and log in.

  • Doctor Listing: View a comprehensive list of available doctors, complete with their specialties and available time slots.

  • Appointment Scheduling: Users can effortlessly select a doctor and book appointments based on the doctor's availability.

  • User Profile: Manage user profiles, update personal information, and review appointment history.

  • Notifications: Users receive timely reminders and notifications regarding upcoming appointments.

  • Admin Panel: Administrators can oversee and manage doctor listings and user appointments.

Tech Stack

Frontend

  • React Native: A versatile framework for developing native mobile applications.

Backend

  • MongoDB: A NoSQL database for securely storing user data and appointment details.

  • Express: A robust web application framework for building efficient APIs.

  • Node.js: A server-side JavaScript runtime for running the backend server.

Getting Started

To run this project locally, follow these steps:

  1. Clone the Repository:
 git clone https://github.com/Rajkumar-Khatua/Appointment-Booking-app-.git
 cd Appointment-Booking-app
  1. Install Dependencies:
npm install
  1. Set Environment Variables: Create a .env file and specify the required environment variables, such as database connection strings and API keys.
.env
  1. Start the Server: Run the following command to initiate the backend server:
  npm start

or

  npx nodemon
  1. Start the Frontend: Navigate to the frontend directory and run the following:
 npm install
 npx expo start
  1. Open the App: Access the app through an emulator, your mobile device.

Project Structure

Backend

The backend of the application is responsible for handling API requests, managing authentication, and interacting with the database.

  • controllers/: Contains controllers for different aspects of the application, including authentication, doctor management, patient management, and appointment handling.

  • middlewares/: Includes middleware functions for route protection, authentication checks, and other request preprocessing.

  • models/: Defines data models for users (doctors and patients) and appointments.

  • routes/: Specifies API routes for different functionalities such as authentication, doctor management, patient management, and appointment management.

  • app.js: The main application file that sets up the server, middleware, and routes.

  • config.js: Stores configuration settings for the application.

  • .env: Stores environment-specific variables, such as database connection strings.

  • package.json: Contains dependencies and scripts for the backend.

  • README.md: Documentation for the backend code.

Frontend

The frontend of the application is built using React Native and is responsible for the user interface and interaction.

  • assets/: Contains image and font assets used in the application.

  • components/: Includes reusable UI components and screens.

  • screens/: Defines screens for different parts of the application, including the home screen, profile screen, doctor lists, appointment booking, and more.

  • navigation/: Manages navigation between different screens and sections of the app.

  • utils/: Contains utility functions for API communication and authentication.

  • App.js: The main entry point for the frontend application.

  • package.json: Contains dependencies and scripts for the frontend.

  • .env: Stores environment-specific variables for the frontend.

  • README.md: Documentation for the frontend code.

Project Root

  • .gitignore: Specifies files and directories to be ignored by version control.

  • package.json: Contains dependencies and scripts for the root directory.

  • README.md: This documentation file.

Feel free to explore the individual directories for more detailed information and documentation.

Contributing

Contributions to enhance and improve this project are warmly welcomed. To contribute, please adhere to the standard GitHub workflow:

  1. Fork the Repository:

    • Click the "Fork" button on the top right of the repository page to create a copy of the project in your GitHub account.
  2. Create a New Branch:

    • Create a new branch in your forked repository to work on your feature or bug fix.
  3. Implement Your Changes:

    • Make your changes in this new branch. Ensure that your code is well-documented and follows any project-specific coding standards.
  4. Thoroughly Test Your Changes:

    • Test your changes thoroughly to ensure they work as expected and do not introduce new issues.
  5. Commit Your Changes and Push:

    • Commit your changes with clear and concise commit messages. Then, push your changes to your forked repository.
  6. Create a Pull Request:

    • Go to the original repository and create a pull request (PR). Provide a clear description of your changes in the PR, along with any relevant information.

The maintainers of the project will review your PR, provide feedback, and merge it if everything is in order. Thank you for your contribution!

Contact

If you have any questions or concerns regarding this project, feel free to contact Rajkumar Khatua at rajkhatua2020@gmail.com.

Happy coding! 🚀