An open API service indexing awesome lists of open source software.

https://github.com/asyylz/patientappointment-app


https://github.com/asyylz/patientappointment-app

cors-proxy expressjs helmet jwt-authentication mongodb-atlas mongoose mongoose-schema nodejs react reactjs redux reduxthunk reduxtoolkit typescript

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          


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.