Docsyard Help
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.
- 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.
- If you want to disable these query cache you need to set ENABLE_DB_CACHE=false in the .env file.
- 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.
- When the APP_DEBUG=false in the .env file. the page’s markup automatically minified
- Email are sent in English Only.