Scheduling System
A system designed to manage and schedule appointments efficiently, ensuring that sellers are not double-booked.
- Author: CafePraThi
- Repository: https://github.com/CafePraThi/scheduling_system
- GitHub stars: 0
- Forks: 0
- License: MIT
- Category: Integrations
- Maintenance: Unmaintained
Install Scheduling System
bench get-app https://github.com/CafePraThi/scheduling_system
Add the Frappe Gems badge to your README
Maintain Scheduling System? Paste this into your README:
[](https://frappegems.com/gems/apps/CafePraThi/scheduling_system)
About Scheduling System
Scheduling System
Description
A system designed to manage and schedule appointments efficiently, ensuring that sellers are not double-booked.
Objective
To provide a scheduling solution that includes appointment creation, conflict validation, and a calendar view.
Installation Instructions
Installation Steps
Get the app:
bench get-app [](https://github.com/CafePraThi/scheduling_system) --init-benchInstall the app:
bench install-app scheduling_systemInstall the app on site:
bench --site your-site install-app scheduling_system
Configuration Details
Activate Developer Mode
To edit/create DocTypes, activate developer mode:
bench set-config developer_mode 1
Database Schema
DocTypes
Appointment DocType:
- Client Name: Data
- Start date: Datetime
- End date: Datetime (Read-only, set programmatically based on the start date and duration)
- Duration: Time
- Description: Small Text
- Seller: Link (Links to a User)
- Status: Select (Options: Scheduled, Finished, Canceled)
Key Features
- Appointment Creation: Users can create appointments with specified details.
- Conflict Validation: Ensures that a seller cannot have overlapping appointments.
- Calendar View: Configured as the default view for appointments.
Usage Instructions
Creating an Appointment
- Log in to the system.
- Navigate to the Appointments List.
- Click on "Add Appointment."
- Fill in the required fields and save.
Calendar View
- Navigate to the Appointments List.
- The calendar view is set as the default view, displaying all appointments.
Code Documentation
Code Structure
apps/scheduling_system: Main app directory.doctype/appointment: Contains the Appointment DocType.appointment.py: Backend logic for Appointment Doctype .appointment.js: Client-side logic for Appointment Doctype.appointment_calendar.js: JavaScript for calendar view.appointment_api.py: Provides API endpoints for Appointment Doctype.
Key Modules
appointment.py
Handles backend logic for appointment management, including validation and utility functions.appointment.js
Configures and apply calendar as primary viewappointment_calendar.js
Configures and manages the calendar view for appointments.appointment_api.py
Provides API endpoints and server-side logic for managing appointments via HTTP requests.API Documentation
Postman API Link
Here is the [[API Documentation Link](https://documenter.getpostman.com/view/26683227/2sA3kPojDf)]. In this documentation, you will find detailed information on the available endpoints, including how to:- Retrieve all appointments
- Retrieve a single appointment
- Create a new appointment
- Update an existing appointment
- Delete an appointment
Final Considerations
Potential System Enhancements
- Duration Field - Time: Improve the user experience by refining the duration field format.
- Repeating Meetings for Multiple Consecutive Days: Enable scheduling of recurring meetings over several consecutive days.
- Client Retrieval from System: Integrate the system to automatically fetch client.
- Integration with Google Calendar, Microsoft Teams, or Other Calendars: Facilitate automatic synchronization of appointments with external calendar platforms.
- Restrict Appointment Creation: Allow appointment creation only with the initial status "Scheduled".
- Access Profiles:
- Users can only view their own appointments.
- Managers have access to appointments for all users.
- Email Notifications and Appointment Reminders: Implement automatic email notifications for appointment reminders.
- Estimate Hours of Meetings Held per Month: Develop functionality to estimate and display the number of hours of meetings held each month.
- Enhanced Management Reports: Improve management reports to provide detailed insights into system usage and performance.
- Endpoints:
- Enhanced API Permissions: Block Guess API.
- Pagination: Implement pagination in endpoints to enhance performance and navigation of results.
Challenges Encountered in the Project
Due to the limited time available, I managed to achieve some of the project goals. However, with more dedicated time for documentation and exploration, I believe I could have gained a deeper understanding of the system. This was my first experience with the library, and initially, there was limited content available online. Despite this, I found the documentation to be robust and encountered a vibrant community and active forums. With more time invested in learning alongside the documentation, I am confident I could have achieved a more profound insight into the system.
Pre-commit Configuration
Pre-commit is configured to use the following tools for checking and formatting your code: - ruff - eslint - prettier - pyupgrade
License
This project is licensed under the MIT License.
Feel free to paste this markdown text into your GitHub repository's README file.
Related Integrations apps for Frappe & ERPNext
- Insights — Open Source Business Intelligence Tool
- Raven — Simple, open source team messaging platform
- Frappe Whatsapp — WhatsApp cloud integration for frappe
- Frappe Assistant Core — Infrastructure that connects LLMs to ERPNext. Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model
- Biometric Attendance Sync Tool — A simple tool for syncing Biometric Attendance data with your ERPNext server
- Frappe React Sdk — React hooks for Frappe
- Frappe Js Sdk — TypeScript/JavaScript library for Frappe REST API
- Mcp — Frappe MCP allows Frappe apps to function as MCP servers