Architecture Guidelines

This is not the holy bible! (smile) It is more a set of architecture guidelines for your orientation. So when difficult design decisions arise, please rethink under the following aspects:

1. Do as much as possible with Laravel!

Do as many things as possible by laravel, especially topics like: logic and view. Don't put logical stuff in SQL.

Laravel 5 Logo

2. Keep it modular!

We use laravel modules to enable modularity usage. A new module is required, when a new (and not already used topic) is addressed! More modules are often better.

See Write your own Application for more information.

PHP artisan module-list output for nms prime

3. Database independents matter!

One of our goals is to achieve database independents. For this purpose, we use the default laravel Eloquent Concept. See: https://laravel.com/docs/eloquent. This required as little as possible usage of direct DB connections – Don't use mysql_query() or avoid laravel DB:: command when possible (smile)

Laravel Eloquent ORM Logo

4. Base MVC is cool – use it!

Base MVC is our own core framework which extends the laravel framework to our special needs. Most of the things you will experience will go through it. See: Base MVC:

Only reusable and generic code goes in "Base MVC"! 

Example of QoS rules page implemented with Base MVCExample of an edit-page as Base MVC

NOTE: Only work in Base MVC context under the following aspects:

  1. You really know what you are doing!
  2. You will put a lot of effort into testing before the merge request comes!

5. Do not reinvent the world! Use Standard Linux!

Make as much as possible use of common standard Linux tools, like

  • ISC DHCP
  • Icinga
  • Cacti and RRD

Linux Mascot Pinguin Tux

These are cool projects! So: USE THEM!

6. Design, look and feel matters!

For this purpose, we use bootstrap with the "Color Admin" Topic. So there is nothing wrong with producing a cool, modern, fancy, and responsive GUI. Most of our users care about this, they are no geeks. Checkout projects for more informations

  1. Bootstrap: http://getbootstrap.com/
  2. Topic: Color Admin: https://wrapbootstrap.com/theme/color-admin-admin-template-front-end-WB0N89JMK

bootstrap template color admin used by nms prime

7. Keep it simple!

Keep it simple

8. Coding is Art: We love open source! Contribute!

laravel logo with slogan

9. Testing matters!

Testing is important!

TODO: phpunit stuff by Patrick Reichel for testing all MVCs!

Graph showing bug detection