Skip to content
DA edited this page Jan 15, 2024 · 47 revisions

Caligrafy - A Web Application Framework For Novice Developers

Caligrafy

What is Caligrafy

Caligrafy is a new and modern MVC framework for PHP that was built from the ground up to provide easy and elegant ways for novice developers to build sophisticated and modern web applications. We've laid a solid foundation of security, social, e-commerce, analytics and machine learning features so that you focus your genius on your ideas.

Caligrafy bridges the power of server-side languages like PHP with the sophistication of client-side languages like Javascript to expose you to how the most advanced Web capabilities are built.


In this video we introduce you to the Caligrafy framework and to the different components that are used in it.


Requirements

  • PHP > 7.2
  • MySql > 5.6
  • curl, mbstring, openssl, mcrypt, gd, headers and redirect modules must be enabled in your servers

Installation

Quick Installation


In this video we introduce you to the Caligrafy framework and to the different components that are used in it.


  • Run the following code from the terminal to get the latest version of Caligrafy

    composer create-project -s dev caligrafy/caligrafy-quill <optionally specify a folder name. default: caligrafy-quill>
    
  • Run the following code in from the Caligrafy root folder to initialize the framework

    php caligrafer.php initialize
    
    #or
    
    .bin/caligrafer initialize
    

    Note that the Caligrafer Initialize command breaks all git links.

    • If you would like to create a git repo for your application, it is recommended that you do so after you initialize it.
    • If you are pulling an application built in Caligrafy from Github and you would like to preserve the git connection in order to pull updates regularly, it is recommended that you proceed with the manual installation instead.

  • You are good to go! If the quick installation does not complete successfully, proceed with the manual installation

Using Docker


In this video we show you how Caligrafy can be installed and run without setting up any development environment.


Both of the following methods require Docker to be installed on your local machine. With Docker, you no longer need to go through the hassle of having an Apache server installed locally to run PHP and MySQL.

  • If you have PHP and Composer installed on your machine, it is prefererred that you start with the Quick installation first.

  • If you don't have Composer then pull the code from github (You can either clone the repo or download the zip file)

  • Run the following code from the Caligrafy root folder to start the Caligrafy server

    #if you have php
    php caligrafer.php server start
    
    #in all cases
    .bin/caligrafer server start
    
  • Once started, you can access the website locally via http://localhost:8080

  • Run server stop instead of server start to stop the server at all time

Database provided in Docker

  • In both commands, a phpmyadmin instance has been added and can be accessible at http://localhost:8077/

  • This is a web client for MySQL. It will allow you easy access to your Database.

    • Username: root
    • Password: root

Manual Installation

  • Pull the code from github (You can either clone the repo or download the zip file)
  • It is recommended to place the repo at the Server Document Root level
  • Go to the downloaded repo and create a .env file by copying the example cp .env.example .env
  • Create an APP_KEY and an API_KEY in the .env file. You can use Caligrafer to generate API keys for you by running php caligrafer.php generatekeys and adding the generated keys to the .env file
  • Add the following to the .env file if not present: APP_ROOT=<caligrafy root folder. default: caligrafy-quill>. If caligrafy is not installed at the Server Document Root level, refer to the Different Root Folder instructions.
  • Change the other values in .env file to match your local or production server settings
  • Run composer install to get all the dependencies needed
  • Initialize the application folder by running the following cp -r framework/settings/application ./application
  • Make the folder /public/uploads/ writable if you intend to allow uploads in your application. You will need to run the command sudo chmod -R 777 /public/uploads
  • You are good to go!

Testing the Installation

  • You can test if the framework is working by visiting http://localhost:<server port, default 80>/<caligrafy root folder. default: caligrafy-quill> in the browser.

For more advanced installation, check the documentation here


Why Caligrafy

1. Full-Stack Framework

Caligrafy is a full-stack framework that leverages the power of server-side languages such as PHP with the power of client-side languages such as Javascript to help you build powerful and sophisticated web applications.

2. MVC Architecture

Caligrafy is built with an MVC architecture pattern that separates the business logic from the presentation layers. The Caligrafy MVC established an arsenal of methods and features that ensure that the separation of concerns is maintained between business and presentation layers.

3. Modern Modular Librairies

Caligrafy comes pre-packaged with ready-to-use modern features. In few lines, you can start accepting credit card payments, ach payments, cryptocurrency payments, building chatbots and assistants. In one line of code, your application can have rich structured data and can be ready for social sharing. In no time, your application can have a REST-API exposed for third-party applications. And many others...

4. VueJS

Caligrafy supports VueJS as an alternative to using its template engine. VueJS complements Caligrafy in its ability to create powerful and nimble user experiences in the "View" layer of an MVC architecture. If you are a PHP developer, Caligrafy makes it easy for you to use VueJS. If you are a Javascript developer, Caligrafy makes it easy for you to not be overwhelmed by PHP.

5. AI and Machine Learning

Caligrafy integrates machine learning capabilities at its core to help you build artificial intelligence seemlessly into your application.

6. Template Engine

Caligrafy has a built-in and powerful template engine that can be used to create sophisticated user experiences easily.

7. Lightweight Syntax

Caligrafy is closer to bare-bone programming than other frameworks out there. While it delivers equivalent - if not more powerful - features, it is built from the ground up with developers in mind.

8. Documentation & Support

Caligrafy is committed to providing continuous support to its community of developers through an extensive online Documentation, Online video tutorials on its youtube channel, training courses on Udemy and live help through Slack, Facebook and Github.

Dependencies

This framework uses several third-party librairies that are included in the distribution

  • Phug (PHP Pug) is used for creating powerful HTML views and templates
  • GUMP Validation is used to provide an easy and painless data validation and filtering
  • dotEnv is used to provide the capability of setting up environment variables for both local and production servers
  • claviska/SimpleImage is used to provide the ability to do server-side manipulations on images
  • stripe/stripe-php is used for payment features
  • coinbase/coinbase-commerce is used for cryptopayment features

Documentation

Learning Caligrafy

We have created a rigorous documentation to help you understand the basics of the framework and to get you started as quickly as possible

  1. Getting Started

  2. Routing

  3. Request

  4. Models

  5. Relationships

  6. Validation

  7. Views

  8. Controllers

  9. Helpers, Forms & REST API

  10. Authentication

  11. Stripe & Cryptocurrency Payment

  12. Metadata & Rich Cards

  13. Search Referencing and Analytics

Caligrafy and Vue.js

Caligrafy is a modern MVC framework that leverages the powerful technologies that fuel each of the M (Model), the V (View) and the C (Controller). Vue.js is a modern and progressive Javascript framework that has been built from the ground up just like Caligrafy. Vue.js empowers you to create powerful and sophisticated Views. This framework integrates seamlessly with Vue.js to combine the best of PHP with the best of JS.


In this video, we show how VueJS can be used with Caligrafy in 2 different ways: 1) as a library to build simple web applications and 2) as a fully integrated front-end framework to build large-scale applications.


Basics - Vue.js as a library

In this section, we cover the basics of Vue.js and we illustrate how it could be used quickly as a library.

  1. Setting up Vue.js as a library
  2. Understanding the flow of information
  3. Understanding structure
  4. Routes
  5. Requests
  6. Forms
  7. Validations
  8. Components

For large scale application purposes

In order to build large scale applications using Vue, we need the ability to leverage the powerful capabilities of Vue such as Single Page Application (SPA) and Single File Components (SFC).

  1. Setting up the Vue application
  2. Routing for Single Page Applications
  3. Single File Components
  4. State Management

AI in Caligrafy

Caligrafy provides easy ways to include Artificial Intelligence and Machine Learning to offer features such as Bots, Face Detection and Recognition.

  1. Creating Bots with Watson
  2. Face Detection and Recognition
  3. Machine Learning
  4. OpenAI: ChatGPT, GPTs, DALL.E
  5. OpenAI: Assistants

Learn Caligrafy

  • Caligrafy is an outstanding framework for educational purposes. We constantly develop instructional video materials to illustrate the main features of the framework. Stay on the look for more video tutorials on our youtube channel.

    Caligrafy Channel

  • Caligrafy offers online courses that give you all the basics that you need to create powerful applications with Caligrafy.

    Caligrafy Academy

Connecting with the Caligrafy Community

There are several ways for the Caligrafy community to connect:

  • github: You can always use github to stay up to date with the roadmap of Caligrafy, to post issues and to track when feature requests and issues are done

  • slack: Joining our slack group is a great way to exchange with other members of the community, to get help on using the framework and to discuss any issues or features.

    Join our slack community

  • facebook Caligrafy Group: Joining our Caligrafy group on facebook gives you more ways to interact with the community and to share success stories.

    Join our facebook group

Need help getting started?

We are always here to help when you need us. If you need assistance getting started or if you need help understanding how Caligrafy can be useful to you, we can help. Reach out to us by joining our slack channel. Reach out to us

Keep Caligrafy going...

Your support keeps us going. If you like Caligrafy, there are several ways you could contribute:

  • Promote us: On our website, you can share our page with your friends and fans caligrafy.com
  • Sponsor us: You sponsor our work in multiple different ways on Github. Your contributions can help us keep our commitments to the developer community. Github Sponsorship
  • Fund our project: You can fund our project on Kickposter. Kickposter is an application that was built using earlier versions of Caligrafy.
Clone this wiki locally