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.
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.
- 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.
- 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.
- 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.
To get started with the repository, follow these steps:
- Clone the repository to your local machine using the following command:
- Navigate to the project directory:
- Install dependencies for both frontend and backend:
- Set up your environment variables:
Create a .env file in the backend directory
Add necessary environment variables (database URL, AWS credentials, etc.) - Start the development server:
- Run the test suite using npm:
git clone git clone https://github.com/your-username/patient-appointment-system.git
cd patient-appointment-system
cd frontend && npm install
cd ../backend && npm install
# In the backend directory
npm run dev
# In the frontend directory
npm run dev
npm test
To experience the application you can use following email and password:
email: alice@test.com
password: Newpass123.
Reach outcome site here
![](https://github.com/asyylz/PatientAppointment-App/raw/b1e1840e120af6e57ebcfe8e52364754f0c2b6e2/frontend/public/outcome.gif)
![](https://github.com/asyylz/PatientAppointment-App/raw/f2c602753c804d079f925a7609d2d2ed7ba98199/frontend/public/coverage-report.jpeg)
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.
This project is licensed under the MIT License.