Skip to content

asyylz/PatientAppointment-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patient Appointment Booking App

The Patient Appointment System is a modern, efficient full-stack web application designed to streamline the process of managing patient appointments in healthcare facilities. Built with cutting-edge technologies for both frontend and backend, this system offers a user-friendly interface for both patients and healthcare providers, enhancing the overall appointment scheduling experience.

Table of Contents

Features

Key features covered in this repository:

  • User Authentication:User Authentication: Secure login and registration system for patients and healthcare providers.
  • Appointment Scheduling: Easy-to-use interface for booking, rescheduling, and canceling appointments.
  • Real-time Updates: Instant notifications for appointment confirmations and reminders.
  • Interactive Map: Integration with Leaflet for location-based services.
  • Responsive Design: Seamless experience across desktop and mobile devices.

Technologies

Frontend

  • React: A JavaScript library for building user interfaces.
  • TypeScript: Adds static typing to JavaScript for improved developer experience.
  • Redux Toolkit: State management for React applications.
  • React Router: Declarative routing for React applications.
  • Axios: Promise-based HTTP client for making API requests.
  • JWT Decode: Decoding JSON Web Tokens for authentication.
  • Leaflet: Open-source JavaScript library for mobile-friendly interactive maps.
  • React Toastify: Add notifications to your app with ease.
  • Redux Persist: Persist and rehydrate a Redux store.

Backend

  • Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Express: Web application framework for Node.js.
  • MongoDB: NoSQL database for storing application data.
  • Mongoose: MongoDB object modeling for Node.js.
  • JSON Web Token: Securely transmitting information between parties as a JSON object.
  • Bcrypt: Library for hashing passwords.
  • AWS SDK: For integrating with Amazon Web Services (S3 for file storage).
  • Multer & Multer-S3: Middleware for handling multipart/form-data and uploading to S3.
  • Nodemailer: Send emails from Node.js.
  • Express Rate Limit: Basic rate-limiting middleware for Express.
  • Helmet: Helps secure Express apps by setting various HTTP headers.
  • CORS: Enable CORS with various options.
  • Morgan: HTTP request logger middleware.
  • Dotenv: Loads environment variables from a .env file.

Development Tools

  • Vite: Next generation frontend tooling for faster development.
  • ESLint: Linting utility for JavaScript and TypeScript.
  • Jest: JavaScript Testing Framework.
  • React Testing Library: Testing utilities for React.
  • MSW (Mock Service Worker): API mocking library for browser and Node.js.

Getting Started

To get started with the repository, follow these steps:

Installation

  1. Clone the repository to your local machine using the following command:
  2. git clone git clone https://github.com/your-username/patient-appointment-system.git
  3. Navigate to the project directory:
  4. cd patient-appointment-system
  5. Install dependencies for both frontend and backend:
  6. cd frontend && npm install
    cd ../backend && npm install
  7. Set up your environment variables: Create a .env file in the backend directory
    Add necessary environment variables (database URL, AWS credentials, etc.)
  8. Start the development server:
  9. # In the backend directory
    npm run dev
    # In the frontend directory
    npm run dev

    Testing

  10. Run the test suite using npm:
  11. npm test

Outcome

To experience the application you can use following email and password:


email: alice@test.com
password: Newpass123.

Reach outcome site here

Test Coverage

Contributing

Contributions to the project are welcome! If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License.