sparkidea25 / scheduler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Scheduler Application Documentation

Overview

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.

User Roles

  • 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.

Functionalities

  • 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.

Technologies

This project utilizes a variety of technologies including Node.js, Express, MongoDB, React, Redux, Bootstrap, and others for comprehensive functionality and user experience.

Installation & Setup

  1. Clone the project using the repository link: https://github.com/M-Elsaied/scheduler.git.
  2. Run npm install to set up the necessary dependencies.
  3. Configure environment variables as per .env to connect to the database and other services.
  4. Start the application with npm start and navigate to the relevant PORT on your browser.

Configuration

Key files for initial configuration: .env for environment setup and /config/database.js for database connections.

Version Control

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.

Documentation

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

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.

Contribution Guidelines

Contributors are encouraged to follow the project's coding standards, document new features, and provide meaningful commit messages that offer context to changes.

License

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.

About


Languages

Language:JavaScript 100.0%