Skip to content

Natty4/eZschedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

EasySchedule

A simple and easy-to-use appointment booking and payment solution.

Built with Python and Django, EasySchedule is an open-source project that simplifies appointment management for businesses and their customers.

Join us in building a scalable and extensible solution for appointment management.

Contributors of all skill levels are welcome!

Check out the Demo

EasySchedule: Open-Source Appointment Booking and Payment Solution

EasySchedule is a robust, user-friendly web application designed to simplify appointment booking and payment handling for businesses and their customers. Built with Python and Django, it integrates seamlessly with external APIs like Chapa for secure payment processing. EasySchedule is open-source and licensed under the GNU General Public License v3.0, making it free to use, modify, and distribute. We welcome contributors of all skill levels to join us in building a scalable and extensible solution for appointment management.


Table of Contents

  1. Features
  2. Installation Instructions
  3. Usage
  4. Contributing Guidelines
  5. License Information
  6. Contact Information
  7. Acknowledgments
  8. Call to Action
  9. Demo

Features

  • Appointment Booking: A streamlined process for scheduling appointments with businesses and professionals.
  • Payment Integration: Secure payment handling via Chapa and other payment gateways.
  • User Management: Role-based access control for customers, business owners, and administrators.
  • Customizable Services: Businesses can define services, durations, and pricing.
  • Dynamic Availability: Real-time availability tracking for professionals and services.
  • QR Code Integration: Generate QR codes for appointments for easy verification.
  • Scalable Architecture: Built with Django, ensuring scalability and maintainability.
  • Cloud Storage: Media and QR codes are stored securely using Cloudinary.
  • Logging and Debugging: Advanced logging with color-coded output for easier debugging.

Installation Instructions

Prerequisites

  • Python 3.8 or higher
  • PostgreSQL or SQLite (for local development)
  • Git

Setup

  1. Clone the Repository:

    git clone https://github.com/natty4/eZschedule.git
    cd easyschedule
  2. Create a Virtual Environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Set Up Environment Variables: Create a .env file in the root directory and configure the following:

    DJANGO_SECRET_KEY=your_secret_key
    DEBUG=True
    DB_ENGINE=django.db.backends.postgresql
    DB_NAME=your_db_name
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_HOST=localhost
    DB_PORT=5432
    CLOUDINARY_CLOUD_NAME=your_cloudinary_name
    CLOUDINARY_API_KEY=your_cloudinary_api_key
    CLOUDINARY_API_SECRET=your_cloudinary_api_secret
  5. Apply Migrations:

    python manage.py migrate
  6. Run the Development Server:

    python manage.py runserver
  7. Access the Application: Open your browser and navigate to http://127.0.0.1:8000.


Usage

Sample Commands

  • Create a Superuser:
    python manage.py createsuperuser
  • Run Tests:
    python manage.py test

API Endpoints

  • List Businesses: GET /api/businesses/
  • Book an Appointment: POST /api/reserve/slot/
  • Confirm Payment & booking: POST /api/booking/confirm/

Frontend Workflows

  1. Navigate to the homepage to browse businesses and services.
  2. Select a service and choose an available time slot.
  3. Complete the booking form and proceed to payment.
  4. Receive a confirmation email with appointment details and a QR code.

Contributing Guidelines

We welcome contributions from everyone! Here's how you can get involved:

  1. Fork the Repository: Click the "Fork" button on GitHub to create your copy of the repository.

  2. Create a Feature Branch:

    git checkout -b feature/your-feature-name
  3. Make Changes: Follow the coding standards and document your code where necessary.

  4. Submit a Pull Request: Push your changes to your fork and create a pull request on the main repository.

  5. Report Issues: Use the GitHub Issues tab to report bugs or suggest features.

Coding Standards

  • Follow PEP 8 for Python code.
  • Write clear and concise commit messages.
  • Include tests for new features or bug fixes.

License Information

This project is licensed under the GNU General Public License v3.0. This means:

  • You are free to use, modify, and distribute the software.
  • Any derivative work must also be open-source and licensed under the same terms.

For more details, see the LICENSE file.


Contact Information

For questions or support, feel free to reach out:


Acknowledgments

  • Django: The web framework that powers this application.
  • Chapa: For seamless payment integration.
  • Cloudinary: For secure media storage.
  • Contributors: A heartfelt thanks to everyone who has contributed to this project ! (Currently, Me 🤓 is the sole contributor.)

Call to Action

We believe in the power of open-source and the strength of community. Whether you're a seasoned developer or just starting out, your contributions are valuable. Join us in making EasySchedule the go-to solution for appointment booking and payment management. Together, we can build something extraordinary!

Start contributing today! 😊


Built with 💙 • GitHubDemoContact

About

demo: http://ezgo-ekrp.onrender.com/

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published