The
scenario developed in all three frameworks is a restaurant order system that
would be used by the employees of the restaurant. The purpose of the
application is to log details of orders received by restaurant in order for the
employees of the restaurant to keep track of orders than need to be taken care
of or that have already been taken care of.

The
implemented features of the websites include:

o  
View
all orders

o  
Create
Orders

o  
Update
orders – main purpose is to keep track of when orders have been fulfilled so it
allows the user to make the change when necessary, but it can also be used to
change any detail of the order.

o  
Delete
Orders

o  
View
delivered and outstanding orders separately

o  
Search
orders by name

o  
User
Login/Registration

Frameworks
Comparison

Laravel

Description

Laravel is
a common PHP framework for web development founded by Taylor Otwell. It
provides various generic functionalities required in web applications using
articulate code, which allows users to build websites more efficiently and
smoothly. Laravel is a very capable framework that supplies a skeleton that has
a copious amount of uses. It can be used to build blogs, online retail stores
and even applications for large businesses. Laravel employs the use of MVC,
Model-View-Controller. This is an architectural pattern that separates the
application into three interdependent parts. The model which is the database,
the view which is the presentation and the controller. (Laravel Design Patterns
and Best Practices)

List
of Features Included

o  
Route
Caching

o  
Inbuilt
Authentication System

o  
Multiple
File System Support

o  
Improved
Method Injection

o  
Contracts

o  
MVC
Architecture

 

Strengths

Documentation
– A huge strength for Laravel mostly benefits its beginner users. It is the
extensive and easy to understand documentation. The official documentation for
Laravel was written by the founder himself, Taylor Otwell. Laravel is a popular
framework and is widely supported which is beneficial because it allows for
there to a large amount of learning options. Another option is Laracasts, which
is a series of paid and free videos created by Jeffery Way. These series of
videos stem from beginner, such as installation, to more in-depth topics. These
are not the only form of learning Laravel there are a lot more. (wordpress)

Flexibility

Weaknesses

Slow

Experience

My
experience with Laravel was educative and enriching. However, development with
the framework had a few difficulties throughout the process. One of the main
problems experienced was with the database, both setting up and throughout
development.

 

Django

Description

Django is a
web development framework that includes a variety of well used features in
websites in order to minimise time spent on tedious processes. It uses an
architecture pattern very close to the MVC pattern, that is frequently referred to
as an MTV framework. This is because its layers consists of the Model, Template
and the View.

The model layer deals with the data. It controls how
it is accessed, validated and how it behaves. The second layer is the template,
often referred to as the presentation layer because it controls how the data
will be displayed in the window. The final layer is the view layer. This layer
is the intermediary between the model layer and the template layer. It controls
the logic of which template the accessed data will be displayed.

List
of Features Included

 

o  
Magical
ORM;

o  
Multi-site
and multi-language support;

o  
MVC
(Model/View/Control) layout;

o  
RSS
and Atom feeds;

o  
AJAX
support;

o  
Free
API;

o  
URL
routing;

o  
Easy
Database Migrations;

o  
Session
handling;

o  
HTTP
libraries and templating libraries;

o  
Code
Layout (you can plug new capabilities by using applications);

o  
Default
Admin section and more.

https://datafloq.com/read/advantages-and-disadvantages-of-using-django/3050

 

Strengths

Fast:  Django is
simple to implement which in turn creates a quicker development process.

Feature Packed: Contains several features that are
easy to implement. One of these features that was used in the website scenario
is user authentication, which was able to be implemented with little problem.

Well
Documented: The Django documentation is well written, detailed and easy to
understand. It provides a series of tutorials that give step by step
instructions into the implementing of several features.

Secure:
Django is a secure framework that ensures security risks aren’t created unintentionally
by developers.

https://hackernoon.com/advantages-and-disadvantages-of-django-499b1e20a2c5

 

Weaknesses

 

Experience

Django framework, of course, brings
some trouble, but at the same time it allows you to solve a huge range of tasks
quickly and easily find the developers. In other words, Django framework makes
software development by Python cheaper.

Spring

Description

Spring is a
java web framework that allows you to develop web applications through java
objects and the application of enterprise services not invasively to the java
objects. (Reference Documentation)

List
of Features Included

o   Dependency Injection

o   Aspect-Oriented
Programming including Spring’s declarative transaction management

o   Spring MVC and Spring
WebFlux web frameworks

o   Foundational support for
JDBC, JPA, JMS

https://projects.spring.io/spring-framework/

 

Strengths

 

Spring allows
for the option of using a robust servlet container rather than needing to have
an enterprise container

Spring
comes with some of the existing technologies like ORM framework, logging
framework, J2EE and JDK Timers etc, Hence we don’t need to integrate explicitly
those technologies.

Spring
WEB framework has a well-designed  web
MVC framework, which provides a great alternate to web framework.

Spring
can eliminate the creation of the singleton and factory classes.

Spring
framework is both complete and modular, because spring framework has a layered
architecture.

Spring
provides a consistent transaction management interface that can scale down to a
local transaction and scale up to global transactions (using JTA).

Spring
framework includes support for managing business objects and exposing their
services to the presentation tier components, so that the web and desktop
applications can access the same objects.

Spring
framework has taken the best practice that have been proven over the years in
several applications and formalized as design patterns.

Spring
application can be used for the development of different kind of applications,
like standalone applications, standalone GUI applications, Web applications and
applets as well.

Advantages of Spring Framework

 

Weaknesses

Based on
experience of developing my first website in spring one of the issues I
experienced was the amount of time the application takes to recompile when
changes were made.

Steep Learning Curve: A popular opinion of the spring framework is that
it is complex. It consists of over 2400 classes and 49 other tools. This
complexity creates a steep learning curve for beginner developers getting into
the spring framework. (Spring framework merits and demerits, 2014)

 

 

 

Experience

References

Bean, M.
(2015). Laravel 5 essentials:
explore the fundamentals of Laravel, one of the most expressive and robust PHP
frameworks available.
Birmingham: Pact.

Laravel: My First Framework

Reference Documentation. Retrieved January 26, 2018, from
https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/overview.html

Spring framework merits and demerits. (2014, April 11).
Retrieved January 22, 2018, from
http://www.aksindiblog.com/spring-framework-advantages-disadvantages.html