Nina Brouk Capstone Report Part 3
Nina Brouk Capstone Report Part 3
Presented to the
Team Member(s):
Executive Summary
This Capstone Project aims to migrate both existing databases and code to new platforms
and technologies for Nina Brouk Enterprises, Inc, a small company in New York. During the
process we intend to build a more scalable, flexible and enhanced system with enhanced
The project consists of several phases: infrastructure setup, data migration, and front end
rewrite. The majority of organizations today migrate on-premises applications and data to public
Modern cloud platforms provide tools for the code base to be stress tested and optimized
to deliver acceptable performance, while killing an overhead of maintenance and upgrade needs.
This project could potentially lead to future projects, migrating older on-premises
technologies to cloud platforms while utilizing open source technologies to provide a more
Table of Contents
Introduction 4
Project Description 4
End Product Users 4
Feasibility Discussion 5
Environmental Scan/Literature Review 5
Project Justification 6
Mitigation of Ethical and Legal Issues 6
Project Life and Enhancements after Project Completion 7
Final Implementation 11
Discussion 13
References 14
Appendix 15
4
Introduction
Project Description
architecture. It can no longer be supported as-is, and needs to be replaced with a more modern &
better performing system. This project is to revamp the existing web application, streamline the
notifications, and business processes. We utilized newer technologies, which made the new
interface mobile friendly. Both backend and frontend of the application was migrated to a
modern technology standard distributed database MySQL 8.0.29 hosted on an AWS Cloud
platform. The user interface is built with help of the most popular open-source PHP MVC
framework– Laravel – and its Bootstrap, Blade templating engine and React components, which
would provide extensions of plain CSS that add variables, mixins, and other powerful features
that make working with front-end components more effective and enjoyable.
Our direct stakeholders and end users are Nina Brouk Enterprises Inc. and its employees.
These employees are the users directly interacting with this application, and are the ones
currently suffering from many of the shortcomings of the current database. This application is
integrated directly into the company’s business practices, replacing the current system.
Our indirect external stakeholders are the clients of Nina Brouk Enterprises Inc., who are
usually represented by the underprivileged immigrant population of Greater New York. Their
5
intend to use all Laravel’s available security features (like encryption and data scrubbing) to
protect this valuable asset, an aspect that is completely overlooked in today’s infrastructure of
this database. By building quality and secure software products for them, we are directly
Feasibility Discussion
The current Nina Brouk DB is written in Classic ASP. This technology uses the
server-side scripting language to develop the web pages irrespective of the browser being used.
Classic ASP was released in January 2002 and was superseded as ASP. Later, ASP.NET was
known as Classic ASP or ASP Classic. ASP is a server-side script engine that is used to
It should be noted that classic ASP is no longer supported by Microsoft, its end of life
(EOL) is happening in 2025 (Microsoft, 2022). This is because there are still numerous websites
that use it. Back in the late 1990’s, it was cutting edge technology. Multiple sites have not
switched over to using ASP.NET. However, time is ticking away. Windows 10 does not have
classic ASP installed by default and uses ASP.NET. Even the newer versions of IIS for
Microsoft’s Windows Server software do not have classic ASP installed by default. So if a client
is still trying to hold on to using ASP, now would be a great time to switch over to ASP.NET
It is important that security and functionality for this company’s business use is
redesigned as soon as possible. The most frequently used database softwares are usually Oracle
or some variety of SQL, chiefly MySQL. (Kamaruzzaman, 2021) MySQL is an open source
relational database management software, and one of the most commonly used free database
The new database will use MySQL with a php frontend utilizing the Laravel framework.
Laravel is a php framework with “expressive, elegant syntax.” (Ottwell, 2022) Like MySQL, it is
open source, reducing project costs. It is a very popular framework for its simplicity and
Project Justification
Of the many justifications for the existence of this project, chiefest among them is the
outdated technology of the existing database application in use at Nina Brouk Enterprises.
Support for some of the technology currently in use is being phased out soon, leading to potential
The current system also suffers from performance issues. Depending on current load, it’s
common for database queries to take multiple minutes to complete. This can have a significant
negative impact on the operations of the company, and a better functioning product would go a
The greatest concern for this project, both ethical and legal, is the handling of personally
identifiable information. This database handles the personal information of all clients receiving
7
service, and control of access to that information is of the utmost importance. This application
makes use of the security and encryption features built into Laravel to ensure only authorized
employees of Nina Brouk Enterprises will have access to the information stored in the database.
With technologies in the current application being phased out of support, application life
span is a key concern in the development of this project. By migrating to newer technologies,
support for the new system is going to be much longer lived. The application will also be easier
to maintain than the current system, making use of user friendly, well documented technologies.
This will ensure a quality product that will serve Nina Brouk Enterprises for years to come.
These newer technologies will also provide pathways to developing new features and
quality of life improvements in the future. Laravel is a very feature rich framework that provides
the tools to integrate a wide range of improvements, such as dynamic tables and improved search
functionality. By building the application within this framework, the groundwork is laid for
future improvements.
Overview/Major Functions
The user’s requirements and expectations are to replicate the functionality of the existing
application on an open source modern platform, hosted in the cloud. The end user expects an
ability to add/edit clients, law offices, medical offices, office case workers, referrals and other
contacts. The user also requires that simple search, print and email functionality of any piece of
information is available in the interface. What the user is not expecting to get with our new
8
solution is the mobile friendly version of the application, export to Excel/CSV of any screen,
searchable, filtered and editable grid controls for managing most of the information that comes
out of the box with PowerGrid control used on most of the pages. The user is not required to
Platform
The Laravel framework has several advantages. Since Laravel is a PHP framework, and
PHP is a server-side language, Laravel doesn't get executed in the browser, and therefore it is not
a browser dependent interface. Laravel tends to only choose packages that are stable and have
huge browser support. Designing a web application that is responsive has become the defacto
standard in the industry today and the web applications designed within Laravel align with this
standard. This is because a responsive web application facilitates an optimal rendering of the
application on any device, be it a smartphone, laptop, tablet, or desktop. That was the primary
reason for choosing this platform for the Nina Brouk DB application.
The database itself was migrated from Microsoft Access to MySQL. The primary reason
for this decision was its free and open source nature. Using MySQL also made the transition to a
cloud based application on AWS easier as Microsoft Access was designed to run in Windows
and is not compatible with the linux operating system that is being used for our server. A stripped
down version of Ubuntu was also chosen over Windows for the OS for its free and open source
nature.
9
Usability testing was carried out by two employees of Nina Brouk Enterprises who are
familiar with the operations of the previous application. This ensured that they would be able to
gauge the functionality of the project and its ability to replace the existing application. They were
given a list of functionality to test. The first was to register, with confirmation email, and log in.
Next was to check if they could access all the pages of the applications and view each entity list.
This included clients, lawyers, medical offices, contacts, referrals, and workers. They then were
to test if they could sort and search the lists, export entities, and email client data from within the
application. Finally they were to confirm whether or not the migrated data is displaying correctly
within the application. Along with their feedback on the functionality, they were also to report on
Feedback was provided via email. They successfully completed all functionality testing,
and everything functioned as intended. They did have some issues with the experience. First
were difficulties with the mobile version of the application. Due to some incomplete coding,
navigation elements were missing in the mobile version, making it impossible to access
individual pages. They also didn’t like the way the table was displayed, requiring horizontal
scrolling, especially on the mobile version. In addition, they provided feedback on visual
formatting such as font and display size, as well as formatting of elements such as dates and
phone numbers.
10
In addition to user testing, unit testing was used to streamline the process of testing
individual components. Unit tests for application routes and authentication were developed and
security group with one volume and elastic IP will cost the client no more than $35 per month
(according to the consistent charge by Amazon in both June and July during our development
period). Running two locations with physical servers and a network administrator maintaining it
currently runs for $250 per month (that includes electricity chargers for power and cooling,
upgrades and maintenance of software). This comparison shows that the AWS cost is 86% less
than hosting two real servers. All other software is free and open-source so this is the entirety of
Final Implementation
The front-end interface of our project, as submitted, can be divided into four major
components — the dashboard page, the client grid, other entities (medical offices, lawyers,
workers, contacts, referrals) and security user management pages. Front end was implemented
with Laravel and its Bootstrap, Blade templating engine and React components, as planned. All
existing client’s data was migrated out of their Microsoft Access Database into MySQL 8.0.29,
During the data migration multiple tools were used to convert the client’s existing data
from Windows 1251 encoding to Unicode UTF-8. Windows-1251 is an 8-bit character encoding,
designed to cover languages that use the Cyrillic script such as Russian, Ukrainian, Belarusian,
encodings, such as Windows-1251 cannot provide a complete usage coverage that UTF-8 does.
12
In HTML5 it’s encouraged to use Unicode (UTF-8) character encoding rather than a legacy
technique used in programming where you build based on abstractions (interfaces) and not
concretions (classes). This has been achieved by the use of MVC software architecture, that
separates domain/application/business logic from the rest of the user interface. It does this by
separating the application into three parts: the model, the view, and the controller.
The model manages fundamental behaviors and data of the application. It can respond to
requests for information, respond to instructions to change the state of its information, and even
notify observers in event-driven systems when information changes in the MySQL database. In
short, it is the data and data-management of the application. The view effectively provides the
user interface element of the application. It will render data from the model into a form that is
suitable for the user interface. The controller receives user input and makes calls to model
objects and the view to perform appropriate actions. These three components work together to
PHP Laravel not only supports MVC architecture, but it also adds many productivity
tools and concepts that make Web development in Laravel a breeze, such as eloquent migrations,
model factories, model-controller-view automatic creation, etc. Also, Laravel view files utilize
the Blade templating engine, whose syntax makes writing views much faster and more enjoyable
and more readable. With the help of these powerful platform tools we were able to put together a
high quality interface in a short time frame. Screenshots of both old and new interfaces are
Discussion
We started the development of our project with an assumption that the responsive element
of Laravel comes out of the box with the rest of its rich templating and CSS features. In today’s
world, responsive web design is no longer an option but a necessity to provide better user
experience. In addition, it was on our list of requirements for the interface. While initial screens
worked great in all browsers on desktop, we discovered that certain elements failed to function in
the mobile version of the application. This was found during the initial client testing, which was
somewhat humiliating. While the testers were able to successfully register and login into our
Unfortunately there is no magic button that allows you to just turn a Laravel application
immediately into an app that runs natively on mobile operating systems. We had to go back to
the drawing board and add separate simpler navigational elements for the mobile version of the
menus.
Throughout the length of the project, all planned tasks and activities were completed on
time, while providing the best possible quality. The client’s feedback was highly positive. The
team correctly applied the principles of Agile development, the paramount of which was the
ability to adapt quickly to new conditions and design changes. The group clearly had a high
understanding of the planned tasks and maintained a professional work ethic all around. We have
established a very tight relationship with the satisfied customer who might employ our services
References
https://towardsdatascience.com/top-10-databases-to-use-in-2021-d7e6a85402ba
Microsoft. (2022, January 25). Active Server Pages (ASP) support in Windows - Internet
https://docs.microsoft.com/en-us/troubleshoot/developer/webapps/iis/general/asp-
support-windows
Ottwell, T. (2022). The PHP framework for web artisans. Laravel. Retrieved June 6,
W3Techs. (n.d.). Usage statistics of character encodings for websites. Retrieved August
Following are the sample of interfaces for visual comparison purposes. Old interface
PASS Tests\Unit\ExampleTest
PASS Tests\Feature\Auth\AuthenticationTest
PASS Tests\Feature\Auth\EmailVerificationTest
PASS Tests\Feature\Auth\PasswordConfirmationTest
PASS Tests\Feature\Auth\PasswordResetTest
PASS Tests\Feature\Auth\RegistrationTest
PASS Tests\Feature\ExampleTest
21
PASS Tests\Feature\RoutesTest
Tests: 43 passed
Time: 2.34s