Skip to content

Technical Notes

Adham Saad edited this page Oct 30, 2016 · 2 revisions

Please follow the following notes while you work on the issues

  1. All Eloquent entities should reside in app\Entities and implements the interface App\Entities\EntityInterface . This interface has 2 methods to implement
  • populate(array $data) This function intends to populate data from requests to the entity object
  • rules(array $data , $id = false ) This function intends to provide validation rules for this entity $data is the request data and $id is only sent when updating the entity and they are used when some validation rules are changing based on the data sent . Please see example of \App\Entities\User in app\Entities\User.php
  1. All entities should be named in singular form , usually laravel takes care of their database database table unless specified otherwise in $table property

  2. All crud models should extends App\Models\ModelAbstract , it has generic functions to do basic actions on the entity . Please see example of \App\Admin\Users\Models\Users in modules/admin/Users/Models/Users.php

  3. Modules and Controllers :

  4. Admin modules should reside in modules/admin and named with StudlyCaps ( e.g : Users , TestingExams ... )

  5. Frontend modules should reside in modules/frontend and also named named with StudlyCaps

  6. Authentication and homepage controllers resides in their default place

  7. Routes

  8. Each module has each own routes and defined in modules/[admin|frontend]/<Module>/routes.php , and they are included automatically using the help of ModulesServiceProvider

  9. Default application routes are in routes\web.php

  10. Themes resides in /resources/themes , and themes configuration is /config/themes.php . Till now we have 2 themes , the first for admin panel called admin_default and the second for frontend called frontend_default . The admin theme uses js and scss assets from resources/assets/js/admin.js and resources/assets/sass/admin.scss respectively .

  11. Development Server A CI ( continuous integration ) job is added on our jenkins server to continuously deploy the latest from master branch . You can check http://testing-eninge.camelcasetech.com/ for the latest deployed tasks . Ask Adham Saad for admin login credentials .

Clone this wiki locally