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 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.
- Features
- Installation Instructions
- Usage
- Contributing Guidelines
- License Information
- Contact Information
- Acknowledgments
- Call to Action
- Demo
- 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.
- Python 3.8 or higher
- PostgreSQL or SQLite (for local development)
- Git
-
Clone the Repository:
git clone https://github.com/natty4/eZschedule.git cd easyschedule -
Create a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
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
-
Apply Migrations:
python manage.py migrate
-
Run the Development Server:
python manage.py runserver
-
Access the Application: Open your browser and navigate to
http://127.0.0.1:8000.
- Create a Superuser:
python manage.py createsuperuser
- Run Tests:
python manage.py test
- List Businesses:
GET /api/businesses/ - Book an Appointment:
POST /api/reserve/slot/ - Confirm Payment & booking:
POST /api/booking/confirm/
- Navigate to the homepage to browse businesses and services.
- Select a service and choose an available time slot.
- Complete the booking form and proceed to payment.
- Receive a confirmation email with appointment details and a QR code.
We welcome contributions from everyone! Here's how you can get involved:
-
Fork the Repository: Click the "Fork" button on GitHub to create your copy of the repository.
-
Create a Feature Branch:
git checkout -b feature/your-feature-name
-
Make Changes: Follow the coding standards and document your code where necessary.
-
Submit a Pull Request: Push your changes to your fork and create a pull request on the main repository.
-
Report Issues: Use the GitHub Issues tab to report bugs or suggest features.
- Follow PEP 8 for Python code.
- Write clear and concise commit messages.
- Include tests for new features or bug fixes.
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.
For questions or support, feel free to reach out:
- Contact: @Natty4
- GitHub Issues: GitHub Issues
- 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.)
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! 😊
