0% found this document useful (0 votes)
77 views22 pages

Nina Brouk Capstone Report Part 3

This capstone project aims to migrate Nina Brouk Enterprises' existing databases and code to new platforms using modern technologies. The project will move the infrastructure to AWS, migrate the data, and rewrite the front end using Laravel and other open source technologies. This will create a more scalable, flexible and enhanced system with improved performance and a more user-friendly interface. Usability testing will be conducted to test the new system's functionality and design requirements.

Uploaded by

api-621299030
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views22 pages

Nina Brouk Capstone Report Part 3

This capstone project aims to migrate Nina Brouk Enterprises' existing databases and code to new platforms using modern technologies. The project will move the infrastructure to AWS, migrate the data, and rewrite the front end using Laravel and other open source technologies. This will create a more scalable, flexible and enhanced system with improved performance and a more user-friendly interface. Usability testing will be conducted to test the new system's functionality and design requirements.

Uploaded by

api-621299030
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

A Capstone Report

Presented to the

Faculty of CST 499 at

California State University, Monterey Bay

Project Name: Nina Brouk Database (or DB)

Client Name: Nina Brouk Enterprises Inc., Hunter, NY

Academic Advisor: Charlie Pham

Team Member(s):

Marianna Petrovich, Illia Sapryga, Nicholas Stankovich

Summer 2022 Term B


2

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

functionality and improved performance with a more user-friendly interface.

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

or hybrid cloud infrastructure to take advantage of elasticity, self-service provisioning,

redundancy and a flexible pay-per-use model.

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

affordable approach to cloud’s pay-as-you-go model.


3

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

Design Requirements and Usability Testing 7


Overview/Major Functions 7
Platform 8
Usability Test Plan 9
Usability Test Results 9

Timeline and Budget 10

Final Implementation 11

Discussion 13

References 14

Appendix 15
4

Introduction

Project Description

Nina Brouk DB application consists of an older software codebase and hardware

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

process of adding/updating clients, generate more user-friendly reports, simplify email

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.

End Product Users

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

personally identifiable information is directly stored in Nina Brouk’s database, therefore we

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

increasing the quality of service and life of these minority groups.

Feasibility Discussion

Environmental Scan/Literature Review

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

dynamically generate Web pages online.

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

before EOL occurs, and they are stuck.


6

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

solutions. It’s especially popular for web applications.

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

reliability. It has excellent performance and is very flexible.

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

functionality and security concerns.

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

long way to streamlining the services they provide.

Mitigation of Ethical and Legal Issues

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.

Project Life and Enhancements after Project Completion

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.

Design Requirements and Usability Testing

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

have any additional skills in operating the new interface.

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 Test Plan

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

their impressions of the overall experience and look of the product.

Usability Test Results

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

utilized. They test various authorization functions, such as

login, email verification, and password management, and

each of the application routes for viewing, editing,

deleting, and restoring each type of entity. See the

appendix for the output from running these tests.

Timeline and Budget

While we started following our proposed timeline

very carefully during the first three weeks, it started to

evolve around the third week in response to design

changes. During development of the landing page Illiya

noticed that we could avoid creating separate pages for

search, report, and emailing and instead implement

everything in the rich Power Grid control. After a quick

discussion with the client, the team agreed that with

minimal effort the features could be worked into the

individual pages and our timeline could be easily adapted

to meet this modification of the original design.

See Figure 1 for the actual week by week timeline

with main features implemented in every sprint of our

Agile Development Cycle.


11

Hosting a dedicated Ubuntu server on Amazon Elastic Compute Cloud (EC2) in a

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

the project cost.

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,

hosted on an Ubuntu server on the AWS Cloud platform.

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,

Bulgarian, Serbian Cyrillic, Macedonian and other languages. Unicode is preferred to

Windows-1251 or other Cyrillic encodings in modern web applications. Single-byte character

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

character encoding such as Windows-1251 (W3Techs, n.d.).

During the development in Laravel we have used a “code to an interface” approach, a

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

create the three basic components of MVC.

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

attached in the Appendix below.


13

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

application, they weren’t able to navigate between screens.

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

for a monetary award after the completion of this program.


14

References

Kamaruzzaman, M. (2021, March 22). Top 10 databases to use in 2021. Medium.

Retrieved June 6, 2022, from

https://towardsdatascience.com/top-10-databases-to-use-in-2021-d7e6a85402ba

Microsoft. (2022, January 25). Active Server Pages (ASP) support in Windows - Internet

Information Services. Microsoft Docs.

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,

2022, from https://laravel.com/

W3Techs. (n.d.). Usage statistics of character encodings for websites. Retrieved August

5, 2022, from https://w3techs.com/technologies/overview/character_encoding


15

Appendix A: Division of Labor

Illia Sapryga: Laravel implementation, Developing templates, AWS setup

Marianna Petrovich: Database migrations, Page development, Client testing

Nicholas Stankovich: Page development, Unit testing, Documentation

Appendix B: Supporting Documents

Following are the sample of interfaces for visual comparison purposes. Old interface

sample pages in a computer browser:


16

Old interface landing page in a mobile view:


17
18

New interface sample pages in desktop version of the application:


19

New interface sample pages in mobile version of the application:

PHPUnit Testing results:

PASS Tests\Unit\ExampleTest

✓ that true is true

PASS Tests\Feature\Auth\AuthenticationTest

✓ login screen can be rendered


20

✓ users can authenticate using the login screen

✓ users can not authenticate with invalid password

PASS Tests\Feature\Auth\EmailVerificationTest

✓ email verification screen can be rendered

✓ email can be verified

✓ email is not verified with invalid hash

PASS Tests\Feature\Auth\PasswordConfirmationTest

✓ confirm password screen can be rendered

✓ password can be confirmed

✓ password is not confirmed with invalid password

PASS Tests\Feature\Auth\PasswordResetTest

✓ reset password link screen can be rendered

✓ reset password link can be requested

✓ reset password screen can be rendered

✓ password can be reset with valid token

PASS Tests\Feature\Auth\RegistrationTest

✓ registration screen can be rendered

✓ new users can register

PASS Tests\Feature\ExampleTest
21

✓ the application returns a successful response

PASS Tests\Feature\RoutesTest

✓ user can load dashboard

✓ user can load lawyers

✓ user can edit lawyer

✓ user can delete lawyer

✓ user can restore lawyer

✓ user can load medoffices

✓ user can edit medoffice

✓ user can delete medoffice

✓ user can restore medoffice

✓ user can load contacts

✓ user can edit contact

✓ user can delete contact

✓ user can restore contact

✓ user can load referrals

✓ user can edit referral

✓ user can delete referral

✓ user can restore referral

✓ user can load workers

✓ user can edit worker

✓ user can delete worker

✓ user can restore worker


22

✓ user can load clients

✓ user can create client

✓ user can edit client

✓ user can delete client

✓ user can restore client

Tests: 43 passed

Time: 2.34s

You might also like