Skip to content
Pooja Sahu edited this page Dec 14, 2021 · 20 revisions

Introduction

miniCal is an open-source booking management platform for all businesses that require booking/appointment scheduling. This developer guide contains development-related information.

Installation

  • Fork the repository https://github.com/minical/minical or clone it locally.
  • Install the stable version of PHP 7.2.0 or higher, MySQL 5.0.4, and OS-specific dependency tools.
  • Create a MySql database with any name.
  • Do the basic configuration updates on the public->build.json file.
  • Create a new file named ".env" by copying the .env.example file which is located in the root.
  • Update database credentials and project URL in .env file, for more details check the .env example.
  • Run the "composer install" command on your project.
  • Make your-server.com point to /public directory of miniCal installation.
  • Install miniCal by going to http://localhost/minical/public/install.php in your browser and creating an admin account.
  • That's it. You are done! Visit miniCal at http://localhost/minical/public

Architecture Summary

miniCal extension follows HMVC architecture pattern. HMVC is a collection of traditional MVC triads operating as one application. Each triad is completely independent and can execute without the presence of any other


Advantages of HMVC:
  • Modularization– This helps in reducing the dependencies between the disparate parts of the application.
  • Organization– It organizes work folder-wise to make workload lesser.
  • Reusability– This feature of HMVC gives you the benefit of reusing your code.
  • Extendibility– It makes the application more extensible without sacrificing the ease of maintenance.

Extension System

An Extension is a piece of software that can extend functionality or add new features to miniCal.



How does Extension Work?

miniCal is written in a way so that other developers can add their code to it. The miniCal extension API offers a strong set of hooks and filters which allow developers to modify existing functionality or add new functionality. miniCal also allows developers to store data in the miniCal database. An extension can utilize miniCal content types, custom fields that allow users to store different types of content, not just posts, and pages. Each extension installed on your site is registered in your miniCal database. You can activate and deactivate them at any time you want. Upon each visit, miniCal connects to the database, loads the core software, and then loads your active plug-in. All this code is processed on your server and then sent to the user’s browser.

How to Find miniCal Extension and Install Them?

You can find free miniCal plug-in by visiting miniCal marketplace or you can also find them directly from your miniCal admin area.
Simply head over to the extension page and you can see all the extensions available.

Sample Extensions

Here is the list of some extensions

  1. Stripe Payment Gateway
  2. Online Booking Engine
  3. Booking Confirmation Email
  4. Channex Integration
  5. Boilerplate Extension

Pull Request for miniCal

We want you to only submit one fix per pull request, instead of many fixes - this will help our code review team to check it quickly and easily. If you submit multiple commits in a single pull request and even a small part of the code is wrong we have to decline the whole pull request.

To create a pull request follow these simple steps.

  • Login to your own GitHub account and fork the miniCal repository. This creates a copy in your account that you can pull, commit and push to without directly affecting the main miniCal project.
  • Clone your repository to your local machine where you do your development.
  • Now create a new branch in your local repository, be more clear and specific with the name of the branch. Make sure that the new branch is based on master(HEAD) and choose the option to switch to the new branch.
  • Make the changes to any files required - always test your changes on a demo site (either locally or on a live test site on the web)
  • Commit your changes. Be very descriptive in the commit message. Include references to external documentation and links to screenshots to help explain your change.
  • Now push your changes to GitHub. After your changes are uploaded you will now see your new branch in your GitHub repository.
  • Click the pull request link which will take you to the comparison page - you should see all of your changes here that are different from the main miniCal repository. At the top, you should see what the comparison is based on. This means you want to merge your branch into the miniCal master branch. Finally, click the Create pull request button!

Join the Community

Get support. exchange ideas with our growing dev community. Join us on Discord.

miniCal Marketplace

Explore the extension of miniCal on miniCal Marketplace.