The 'scheduler' application is designed to provide an intuitive web-based scheduling platform, catering to various user roles such as Super Admin, Admin, Staff, Doctor, and Patient. It facilitates organizing appointments effectively with features that comply with business rules and user accessibility.
- Super Admin: Manages entire system settings and user permissions across all locations.
- Admin: Handles scheduling, staff, and local operations within an assigned location.
- Staff: Views and manages appointments with limitations imposed by Admins or Super Admins.
- Doctor: Manages personal availability for appointments.
- Patient: Schedules appointments based upon provider availability and service offerings.
- Role-based access control system.
- Internal scheduling management for appointments.
- Service customization including duration, provider allocation, and location specificity.
- Provider availability manually inputted into the system.
- Appointment conflict prevention and rules enforcement, like working hours adherence.
- Real-time notifications through email and WhatsApp for appointment-related communications.
- A user-friendly calendar interface with advanced search and filtering options.
- Microservices architecture for backend functionalities.
This project utilizes a variety of technologies including Node.js, Express, MongoDB, React, Redux, Bootstrap, and others for comprehensive functionality and user experience.
- Clone the project using the repository link:
https://github.com/M-Elsaied/scheduler.git
. - Run
npm install
to set up the necessary dependencies. - Configure environment variables as per
.env
to connect to the database and other services. - Start the application with
npm start
and navigate to the relevant PORT on your browser.
Key files for initial configuration: .env
for environment setup and /config/database.js
for database connections.
Github is used for version control with the main repository at https://github.com/M-Elsaied/scheduler
. The development process includes standard Git workflow with feature-based branching.
Refer to inline comments and documentation within code files for better understanding and contributions. Particularly, review /controllers
, /models
, and /routes
for backend implementation and /src
for front-end logic.
Security measures include JWT for authentication, bcrypt for hashing, CORS setup for API security, Helmet for secure HTTP headers, and Passport for strategy-based authentication.
Contributors are encouraged to follow the project's coding standards, document new features, and provide meaningful commit messages that offer context to changes.
The project is licensed under the ISC license. Please review the project's LICENCE.md for more details on terms and usage.
For any additional help or clarification, reach out to the repository maintainers or raise an issue in the GitHub repository.