Skip to main content

Managing appointment scheduling with customizable slots, staff features, and conflict handling.

Project description

Django Appointment 📦

⚠️ IMPORTANT: Version 2.1.0 introduces significant database changes. Please read the migration guide before updating.

Django-Appointment is a Django app engineered for managing appointment scheduling with ease and flexibility. It enables users to define custom configurations for time slots, lead time, and finish time, or utilize the default values provided. This app proficiently manages conflicts and availability for appointments, ensuring a seamless user experience.

Detailed documentation can be found in the docs directory. For changes and migration information, please refer to the release notes here.

Features ✨

  1. Customizable time slots, lead time, and finish time.
  2. Competent handling of appointment conflicts and availability.
  3. Seamless integration with the Django admin interface for appointment management.
  4. User-friendly interface for viewing available time slots and scheduling appointments.
  5. Capability to send email notifications to clients upon scheduling an appointment.

Added Features in version 2.0.0

  • Database Changes ⚠️: Significant modifications to the database schema. Before updating, ensure you follow the migration steps outlined in the migration guide.
  1. Introduced a staff feature allowing staff members in a team or system to manage their own appointments.
  2. Implemented an admin feature panel enabling staff members and superusers (admins) to manage the system.
  3. Added buffer time between the current time and the first available slot for the day.
  4. Defined working hours for each staff member, along with the specific days they are available during the week.
  5. Specified days off for staff members to represent holidays or vacations.
  6. Staff members can now define their own configuration settings for the appointment system, such as slot duration, working hours, and buffer time between appointments. However, only admins have the privilege to add/remove services.

Breaking Changes in version 2.1.0:

  • None

New Features 🆕

See the release notes for more information.

Fixes 🆕

See the release notes for more information.

Quick Start 🚀

  1. Add "appointment" to your INSTALLED_APPS setting like so:

    INSTALLED_APPS = [
        # other apps
        'appointment',
    ]
    
  2. Incorporate the appointment URLconf in your project's urls.py like so:

    from django.urls import path, include
    
    urlpatterns = [
        # other urls
        path('appointment/', include('appointment.urls')),
    ]
    
  3. In your Django's settings.py, append the following:

    AUTH_USER_MODEL = 'models.UserModel'  # Optional if you use Django's user model
    

    For instance, if you employ a custom user model:

    AUTH_USER_MODEL = 'client.UserClient'
    

    If you're utilizing the default Django user model, there's no need to add this line since Django automatically sets it to:

    AUTH_USER_MODEL = 'auth.User'
    

    Ensure your create_user function includes the following arguments, even if they are not all utilized:

    def create_user(first_name, email, username, last_name=None, **extra_fields):
        pass
    

    This function will create a user with a password formatted as: f"{APPOINTMENT_WEBSITE_NAME}{current_year}"

    For instance, if you append this to your settings.py:

    APPOINTMENT_WEBSITE_NAME = 'Chocolates'
    

    And the current year is 2023, the password will be "Chocolates2023". If APPOINTMENT_WEBSITE_NAME is not provided, the default value is "Website", rendering the password as "Website2023".

    This name is also utilized in the footer of the emails sent to clients upon scheduling an appointment:

    <p>® 2023 {{ APPOINTMENT_WEBSITE_NAME }}. All Rights Reserved.</p>
    
  4. Execute python manage.py migrate to create the appointment models.

  5. Launch the development server and navigate to http://127.0.0.1:8000/admin/ to create appointments, manage configurations, and handle appointment conflicts (the Admin app must be enabled).

  6. You must create at least one service before using the application on the admin page. If your service is free, input 0 as the price. If your service is paid, input the price in the price field. You may also provide a description for your service.

  7. Visit http://127.0.0.1:8000/appointment/request/<service_id>/ to view the available time slots and schedule an appointment.

Customization 🔧

  1. In your Django project's settings.py, you can override the default values for the appointment scheduler. More information regarding available configurations can be found in the documentation here.
  2. Modify these values as needed for your application, and the app will adapt to the new settings.
  3. For further customization, you can extend the provided models, views, and templates or create your own.

Support 💬

For support or inquiries regarding the Appointment Scheduler app, please refer to the documentation in the "docs" directory or visit the GitHub repository for more information.

Notes 📝⚠️

Currently, the application does not send email reminders yet.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-appointment-2.1.0.tar.gz (222.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_appointment-2.1.0-py3-none-any.whl (258.4 kB view details)

Uploaded Python 3

File details

Details for the file django-appointment-2.1.0.tar.gz.

File metadata

  • Download URL: django-appointment-2.1.0.tar.gz
  • Upload date:
  • Size: 222.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for django-appointment-2.1.0.tar.gz
Algorithm Hash digest
SHA256 bab3b97dbf1be18f6a5078521287d6a354f03d310e04ec7175a8b0808918513c
MD5 05ad468eeeedb7c57280efad56df10af
BLAKE2b-256 bb8d2418001f771ad55705a54dcd4b43f8668b1d0fc2ab5a197b4c6b21dd8ee3

See more details on using hashes here.

File details

Details for the file django_appointment-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_appointment-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0a4ba4b8753c102bb4c905d61eb4bf6628ea2caf62526a4f335885eb75adf8c
MD5 e8def61a4a7112ad8223b13d630fbda1
BLAKE2b-256 5e3aecc8f03830ca54c028b024f38327d66dce81664c6be9a1bf4d514311363d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page