SlideShare a Scribd company logo
1 of 2
Download to read offline
Jericho Project Overview
By Jaco Koekemoer
Date: 2017-01-03
I started with development on a private, brand new, web application project for a client in
the property industry. I performed the following activities on the project:
Requirements gathering from the client though various face-to-face meetings.
Systems analysis and design using UML, which involved identifying system use cases
using UML use case diagram, identifying and designing use case activity sequences using
UML sequence diagram, and identifying and designing domain and business objects using
UML class diagrams.
Systems development was then performed using the following technologies:
• PHP and the Laravel PHP web framework
• MYSQL database
• Ubuntu Linux environment
• PHPUnit for unit testing
• GIT for version control, and using Github as an online code repository
As part of the development process, unit tests was also developed in order to ensure
system quality.
The system that I designed and developed includes the following features:
• Role-based authentication: I defined roles in the system, together with
permissions, then assigned permissions to certain roles, in order to ensure
progressive access to functionality in the system. Users are then assigned to roles,
which provides a user access to all permissions for a role.
• CRUD (Create, Read, Update, Delete): The main purpose of the system was to
enable the client to capture, update and search for important data, and to perform
reporting on the data. A PHP library for creating PDFs was used for creating the
reports. The functional requirements of the system are mostly fulfilled using CRUD
operations.
• Auditing: I also built in auditing functionality into the system at different levels.
When a record in the database is created or updated, the current user and current
date/time is also stored in the affected table. A seperate table is also used for
storing any changes to the data in the database. A Laravel PHP library was used for
this purpose.
• Bugtracking Component: A component for tracking bugs was built into the system,
to allow users to report any bugs they find in the system. The user can assign bugs
to a developer, who will then fix and reply with a comment in the component.
• User management: Users are able to register in the system, as well as change
passwords. A component for managing users by an administrator was also created.
• Security: Security measures that I catered for in the system includes authentication
with strong, encrypted passwords, an SSL certificate, roles and permissions. The
Laravel framework also covers security for common cyber attacks.
• Global Error page: A n error page for displaying global errors in the system was
also built. As far as possible, bugs are identified using unit testing.
• Pagination: The Laravel framework makes provision for pagination in the system,
in order to ensure that large search results are properly managed and displayed in
the system.
• Lookups: The system was made fully configurable in terms of lookup data that are
displayed in dropdown boxes. An administrator user is able to manage data for
most dropdown boxes in the system.
• Diary Component: As part of user requirements, I built in a component for diarising
items in the system. A user is able to set the item to be followed up on a certain
date and time. On the date of followup, the user can then add comments, and
rediarise, or close the diary item. On the user's home page, all open diary items can
be viewed, categorised past, present and future.
Docker
I also researched containerisation for this project. I set up my development enviroment by
running the database in one docker container, and runing the webserver inside an Ubuntu
image in a separate container. I must say that I do not have experience in running systems
in a production environment using Docker containerisation technology yet.
Conclusion
My drive for learning new technology is demonstrated by the fact that I took some time,
about a week, to first learn the Laravel webframework, before I started development on the
project. The project also required constant technology research, as I progressed through
the development phase, such as, setting up an SSL certificate, learning the Ubuntu
operating system, Docker containerisation. All research was done online, however, I also
sought advice from for experience contacts in the software development industry.

More Related Content

What's hot

Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslSharan S
 
Java microservicesspringbootcasestudy2
Java microservicesspringbootcasestudy2Java microservicesspringbootcasestudy2
Java microservicesspringbootcasestudy2Subramanyam Vemala
 
Nightly build done right
Nightly build done rightNightly build done right
Nightly build done rightLiora Milbaum
 
Maven in mulesoft
Maven in mulesoftMaven in mulesoft
Maven in mulesoftvenkata20k
 
Docker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersDocker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersElton Stoneman
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriverSachin-QA
 
Kentico Connection 2014 Boston Upgrade Like a Pro
Kentico Connection 2014 Boston Upgrade Like a ProKentico Connection 2014 Boston Upgrade Like a Pro
Kentico Connection 2014 Boston Upgrade Like a ProBrian McKeiver
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
Gatling & LoadUI - Open Source Tools For Preformance Testing
Gatling & LoadUI - Open Source Tools For Preformance TestingGatling & LoadUI - Open Source Tools For Preformance Testing
Gatling & LoadUI - Open Source Tools For Preformance TestingRaman Kansal
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
How to Wield Kentico 9 in the Real World
How to Wield Kentico 9 in the Real WorldHow to Wield Kentico 9 in the Real World
How to Wield Kentico 9 in the Real WorldBrian McKeiver
 
One-year Accomplishment Report on i5k@NAL
One-year Accomplishment Report on i5k@NALOne-year Accomplishment Report on i5k@NAL
One-year Accomplishment Report on i5k@NALJun-Wei Lin
 
Chicago alm user group tfs version control poster - tfvc and git
Chicago alm user group   tfs version control poster - tfvc and gitChicago alm user group   tfs version control poster - tfvc and git
Chicago alm user group tfs version control poster - tfvc and gitDave Burnison
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling IntegrationKnoldus Inc.
 

What's hot (20)

Ready! Steady! SpringBoot!
Ready! Steady! SpringBoot! Ready! Steady! SpringBoot!
Ready! Steady! SpringBoot!
 
Selenium
SeleniumSelenium
Selenium
 
Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer Toolsl
 
Java microservicesspringbootcasestudy2
Java microservicesspringbootcasestudy2Java microservicesspringbootcasestudy2
Java microservicesspringbootcasestudy2
 
Nightly build done right
Nightly build done rightNightly build done right
Nightly build done right
 
Maven in mulesoft
Maven in mulesoftMaven in mulesoft
Maven in mulesoft
 
Jenkins
JenkinsJenkins
Jenkins
 
Docker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersDocker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with Containers
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
 
Kentico Connection 2014 Boston Upgrade Like a Pro
Kentico Connection 2014 Boston Upgrade Like a ProKentico Connection 2014 Boston Upgrade Like a Pro
Kentico Connection 2014 Boston Upgrade Like a Pro
 
Node.js quick intro
Node.js quick introNode.js quick intro
Node.js quick intro
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Gatling & LoadUI - Open Source Tools For Preformance Testing
Gatling & LoadUI - Open Source Tools For Preformance TestingGatling & LoadUI - Open Source Tools For Preformance Testing
Gatling & LoadUI - Open Source Tools For Preformance Testing
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
How to Wield Kentico 9 in the Real World
How to Wield Kentico 9 in the Real WorldHow to Wield Kentico 9 in the Real World
How to Wield Kentico 9 in the Real World
 
One-year Accomplishment Report on i5k@NAL
One-year Accomplishment Report on i5k@NALOne-year Accomplishment Report on i5k@NAL
One-year Accomplishment Report on i5k@NAL
 
Chicago alm user group tfs version control poster - tfvc and git
Chicago alm user group   tfs version control poster - tfvc and gitChicago alm user group   tfs version control poster - tfvc and git
Chicago alm user group tfs version control poster - tfvc and git
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling Integration
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 

Similar to Jericho Project Overview

Discovery Life Project Portfolio
Discovery Life Project PortfolioDiscovery Life Project Portfolio
Discovery Life Project PortfolioJaco Koekemoer
 
Srinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_ResumeSrinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_ResumeSrinivasa Pavan
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
Ananth_Ravishankar
Ananth_RavishankarAnanth_Ravishankar
Ananth_Ravishankarananth R
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 

Similar to Jericho Project Overview (20)

Discovery Life Project Portfolio
Discovery Life Project PortfolioDiscovery Life Project Portfolio
Discovery Life Project Portfolio
 
Devops
DevopsDevops
Devops
 
Srinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_ResumeSrinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_Resume
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Khushboo_Resume
Khushboo_ResumeKhushboo_Resume
Khushboo_Resume
 
CV_RishabhDixit
CV_RishabhDixitCV_RishabhDixit
CV_RishabhDixit
 
Olga Vasylchenko CV
Olga Vasylchenko CVOlga Vasylchenko CV
Olga Vasylchenko CV
 
Mayur_Resume (2) (1)
Mayur_Resume (2) (1)Mayur_Resume (2) (1)
Mayur_Resume (2) (1)
 
Build Time Hacking
Build Time HackingBuild Time Hacking
Build Time Hacking
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
VINOD_6yrs
VINOD_6yrsVINOD_6yrs
VINOD_6yrs
 
Chinnasamy Manickam
Chinnasamy ManickamChinnasamy Manickam
Chinnasamy Manickam
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Maheshresumeselenium
MaheshresumeseleniumMaheshresumeselenium
Maheshresumeselenium
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
 
Selenium
SeleniumSelenium
Selenium
 
Ananth_Ravishankar
Ananth_RavishankarAnanth_Ravishankar
Ananth_Ravishankar
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 

Jericho Project Overview

  • 1. Jericho Project Overview By Jaco Koekemoer Date: 2017-01-03 I started with development on a private, brand new, web application project for a client in the property industry. I performed the following activities on the project: Requirements gathering from the client though various face-to-face meetings. Systems analysis and design using UML, which involved identifying system use cases using UML use case diagram, identifying and designing use case activity sequences using UML sequence diagram, and identifying and designing domain and business objects using UML class diagrams. Systems development was then performed using the following technologies: • PHP and the Laravel PHP web framework • MYSQL database • Ubuntu Linux environment • PHPUnit for unit testing • GIT for version control, and using Github as an online code repository As part of the development process, unit tests was also developed in order to ensure system quality. The system that I designed and developed includes the following features: • Role-based authentication: I defined roles in the system, together with permissions, then assigned permissions to certain roles, in order to ensure progressive access to functionality in the system. Users are then assigned to roles, which provides a user access to all permissions for a role. • CRUD (Create, Read, Update, Delete): The main purpose of the system was to enable the client to capture, update and search for important data, and to perform reporting on the data. A PHP library for creating PDFs was used for creating the reports. The functional requirements of the system are mostly fulfilled using CRUD operations. • Auditing: I also built in auditing functionality into the system at different levels. When a record in the database is created or updated, the current user and current date/time is also stored in the affected table. A seperate table is also used for storing any changes to the data in the database. A Laravel PHP library was used for this purpose. • Bugtracking Component: A component for tracking bugs was built into the system, to allow users to report any bugs they find in the system. The user can assign bugs to a developer, who will then fix and reply with a comment in the component. • User management: Users are able to register in the system, as well as change passwords. A component for managing users by an administrator was also created. • Security: Security measures that I catered for in the system includes authentication with strong, encrypted passwords, an SSL certificate, roles and permissions. The Laravel framework also covers security for common cyber attacks. • Global Error page: A n error page for displaying global errors in the system was also built. As far as possible, bugs are identified using unit testing. • Pagination: The Laravel framework makes provision for pagination in the system, in order to ensure that large search results are properly managed and displayed in
  • 2. the system. • Lookups: The system was made fully configurable in terms of lookup data that are displayed in dropdown boxes. An administrator user is able to manage data for most dropdown boxes in the system. • Diary Component: As part of user requirements, I built in a component for diarising items in the system. A user is able to set the item to be followed up on a certain date and time. On the date of followup, the user can then add comments, and rediarise, or close the diary item. On the user's home page, all open diary items can be viewed, categorised past, present and future. Docker I also researched containerisation for this project. I set up my development enviroment by running the database in one docker container, and runing the webserver inside an Ubuntu image in a separate container. I must say that I do not have experience in running systems in a production environment using Docker containerisation technology yet. Conclusion My drive for learning new technology is demonstrated by the fact that I took some time, about a week, to first learn the Laravel webframework, before I started development on the project. The project also required constant technology research, as I progressed through the development phase, such as, setting up an SSL certificate, learning the Ubuntu operating system, Docker containerisation. All research was done online, however, I also sought advice from for experience contacts in the software development industry.