Docsyard

Technical Guide


Technical Guide

Server Requirements

As given below.

  • PHP >= 7.1.3
  • MySQL 5.x
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • Fileinfo PHP Extension
  • GD Library (>=2.0)
  • JSON PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • Zip PHP Extension

 

Frameworks & Library Uses

To make this awesome product below are the libraries used:

PHP

  • barryvdh/laravel-dompdf- ^0.8.4,
  • fideloper/proxy- ^4.0,
  • firebase/php-jwt- ^5.0,
  • greggilbert/recaptcha- 2.2.0,
  • guzzlehttp/guzzle- 6.3.3,
  • intervention/image- 2.4.1,
  • laracasts/utilities- ~2.1,
  • laravel/framework- 5.8.*,
  • laravel/tinker- ^1.0,
  • livelyworks/laravel-yes-authority- ~2.9.8,
  • ramsey/uuid- ^3.7.3,
  • phpseclib/phpseclib- ~2.0

 

 JavaScript & CSS

  • @fortawesome/fontawesome-free - 5.8.1
  • angular - 1.7.8
  • angular-animate - 1.7.8
  • angular-loading-bar - 0.9.0
  • angular-messages - 1.7.8
  • angular-sanitize - 1.7.8
  • angular-selectize2 - 1.2.3
  • angular-ui-router - 1.0.22
  • angular-ui-tree - ^2.22.6
  • animate.css - 3.7.0
  • blueimp-file-upload - 9.30.0
  • bootstrap - 4.3.1
  • ckeditor - ^4.11.4
  • datatables.net - 1.10.19
  • datatables.net-bs4 - 1.10.19
  • datatables.net-responsive - 2.2.3
  • datatables.net-responsive-bs4 - 2.2.3
  • flatpickr - 4.5.7
  • fontawesome - 5.6.3
  • jquery - ^3.4.1
  • jquery-colpick - 3.1.0
  • jquery-resizable-dom - 0.32.0
  • jquery-sortable - ^0.9.13
  • jquery-sortable-lists - ^1.4.0
  • jquery-typeahead - ^2.10.6
  • jquery-ui - 1.12.1
  • lodash - ^4.17.15
  • moment - 2.24.0
  • ng-dialog - 1.4.0
  • ng-notify - 0.7.1
  • ng-switchery - 1.0.1
  • selectize - ^0.12.6
  • sortablejs - ^1.9.0
  • sticky-sidebar - ^3.3.1
  • sweetalert2 - 7.33.1
  • switchery - 0.0.2

 

File Structure

While development we follow some of our rules to organize the code. For this we have made some changes to the Laravel framework files as follows:

Controllers

By default, Laravel placed all its controllers under Http/Controllers folder, we have relocated these files to its own modules at App/Yantrana/Components/

File Structure

All the component code is placed under the folder called Yantrana under the app folder. This folder contains folders:

  • __Laraware – a files contain a core files for the various classes which mostly extends Laravel classes & helper, which are restricted to change while development.

  • Base – is also contains the base files for various classes which mostly extended using __Laraware classes.
  • Support – contains various & common helpers & classes.
  • Services – contains various & common required service classes.
  • Components – This is main folder which contains all the business logic in to its own modules as follows:
    • __Igniter.php – gateway controller.
    • Component Folder

Each component has its own folder structure as follows:

  • Models – Contains all the model files.
  • Controllers – contains all the controller files.
  • Repositories – contains all the repositories which treated as data-layer.
  • Requests – contains the request files mostly for forms.
  • Blueprints – contains the interface files for required classes.
  • Engine.php – Its treated as most file for the component

Each component can have multiple sub components.

public/dist Folder

This folder contains all the frontend related files like JS, CSS etc.

In the CSS & JS folder you will find files named like: application.min.js, vendor-manage.css etc.

For the application 2 types of files are there one is minified (.min) & other one is normal non-minified files (.src). By default, application uses .min files & called in to below named views which are placed under resources/views using __yesset helper functions, which dynamically finds the files on given file named & path contains *.

  • manage-master.blade.php
  • includes/head-content.blade.php
  • includes/foot-content.blade.php

Tip: non-vendor JS files contains the AngularJS controllers, services etc.

media_storage

This folder stores all the static media of the files like images etc.

For the most other things you can consider Laravel PHP Framework documents at below link: https://laravel.com/docs/5.8

 

Emails

For some action system uses email by default it uses php mail function as driver you can change it using .env file for more info see https://laravel.com/docs/5.8/mail

System uses resources/views/emails/index.blade.php as main view you can manage header & footer from here. Also, all the email view files are stored in resource/views/email folder.

 

User Tech Config

If you want to update some settings in config/__tech.php then do not edit that file you should use user-tech-config.php to overwrite those array item.

Example -

return [

   //@example

   /* character limit

   ------------------------------------------------------------------------- */

   ‘character_limit’  => 30,

];

 

Please Note

There is certain information you should aware of.

  1. System cache (ServerSide) some queries (settings etc.) for better performance if you think you have made some changes to database directly, please consider deleting folders at storage/ framework cache.
    1. If you want to disable these query cache you need to set ENABLE_DB_CACHE=false in the .env file.
  2. If you set APP_DEBUG=true in the .env file. the system also logs lot of information in to the Browser’s Console panel for debugging, so please keep it false for the production uses.
     
  3. When the APP_DEBUG=false in the .env file. the page’s markup automatically minified
  4. Email are sent in English Only.