A Django app for managing appointment scheduling with ease and flexibility.
Project description
Appointment Scheduler
Appointment Scheduler is a Django app designed for managing appointment scheduling with ease and flexibility. It allows users to define custom configurations for time slots, lead time, and finish time, or use the default values provided. The app also handles conflicts and availability for appointments, ensuring a smooth user experience.
Detailed documentation is in the "docs" directory.
Features
- Customizable time slots, lead time, and finish time.
- Handles appointment conflicts and availability.
- Easy integration with Django admin interface for appointment management.
- User-friendly interface for viewing available time slots and scheduling appointments.
- Sends email notifications to clients when they schedule an appointment.
Quick start
-
Add "appointment" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ # other apps 'appointment', ]
-
Include the appointment URLconf in your project urls.py like this:
from django.urls import path, include urlpatterns = [ # other urls path('appointment/', include('appointment.urls')), ]
-
In your Django's settings.py, add the following:
APPOINTMENT_CLIENT_MODEL = models.UserModel # Not optional (e.g. auth.User, or client.UserClient)
For example, if you use the default Django user model:
APPOINTMENT_CLIENT_MODEL = auth.User
Or, if you use a custom user model:
APPOINTMENT_CLIENT_MODEL = client.UserClient
If you have a custom user model, make sure your create_user function includes the following arguments, even if you don't use all of them:
def create_user(first_name, email, username, **extra_fields): pass
This will create a user with a password in the format: f"{APPOINTMENT_WEBSITE_NAME}{current_year}"
For example, if you add this to your settings.py:
APPOINTMENT_WEBSITE_NAME = 'Chocolates'
And the current year is 2023, the password will be "Chocolates2023". If you don't provide an APPOINTMENT_WEBSITE_NAME, the default value is "Website", so the password will be "Website2023".
This name is also used in the footer of the emails sent to the clients when they schedule an appointment.
<p>® 2023 {{ APPOINTMENT_WEBSITE_NAME }}. All Right Reserved.</p>
-
Run
python manage.py migrate
to create the appointment models. -
Start the development server and visit http://127.0.0.1:8000/admin/ to create appointments, manage configurations, and handle appointment conflicts (you'll need the Admin app enabled).
-
You have to create at least a service before using the application in the admin page. If your service is free, add 0 as the price. If you want to charge for your service, add the price in the price field. You can also add a description for your service.
-
Visit http://127.0.0.1:8000/appointment/request/<service_id>/ to view the available time slots and schedule an appointment.
Customization
-
In your Django project's settings.py, you can override the default values for the appointment scheduler:
# Default values APPOINTMENT_SLOT_DURATION = 30 # minutes APPOINTMENT_LEAD_TIME = (9, 0) # (hour, minute) 24-hour format APPOINTMENT_FINISH_TIME = (16, 30) # (hour, minute) 24-hour format # Additional configuration options APPOINTMENT_BASE_TEMPLATE = 'base_templates/base.html' # your base template APPOINTMENT_WEBSITE_NAME = 'Website' APPOINTMENT_PAYMENT_URL = None # example of pattern 'payment:payment_linked APPOINTMENT_THANK_YOU_URL = None # example of pattern 'payment:thank_you' # Additional to the default email settings APP_DEFAULT_FROM_EMAIL = "webmaster@localhost" # the default from email that you're using
-
Modify these values as needed for your application, and the scheduler will adapt to the new settings.
-
To further customize the app, you can extend the provided models, views, and templates or create your own.
Support
For support or questions regarding the Appointment Scheduler app, please refer to the documentation in the "docs" directory or visit the GitHub repository for more information.
Notes
The application doesn't send confirmation emails on appointment creation yet, but it will be implemented soon. Also the application doesn't send email reminders yet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_appointment-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16ab57ddb2d552bfc7a2930205ccdf39d97f8e8a0d47099d1b08bb96b54f3363 |
|
MD5 | a6eeaf723b049eefc5a72304fae79ce8 |
|
BLAKE2b-256 | f48df97aad9b3560ba524bfa4d8da495ebefe619cde02f4652f634dd3969230b |