Skip to content
forked from 9xb/Tech-Test

9xb Web and Applications Developer Technical Test

Notifications You must be signed in to change notification settings

dwatson251/Tech-Test

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Daniel Watsons Implementation

This is my solution; a scalable, custom MVC.

Using ideas from MVC's like Laravel and Zend, I created a custom MVC with autoloading and custom controller and model support as well as very basic validation, which can be expanded very easily.

I feel that this was the more effective ways to complete this task, as by developing a small MVC framework I am able to completely seperate the concerns of the application, as well as making it scalable.

Instructions for use

I didn't go in to too much detail with deployments, so you'll need to set up the environment manually. Luckily, you'll just need to edit the DB information within config.php and create a new table called "user" (Which matches the Model name) with the following rows:

  • id (int | Primary Key | Auto Increment)
  • firstname (VARCHAR (255))
  • lastname (VARCHAR (255))
  • job_role (VARCHAR (255))

Then navigate, within the application to <domain.app>/public/users

Note on time constraints

I'd like to add that do my ambitious solution to this task, the largest problem I faced was time. As a result, there are many areas I would have liked to improve, such as routing and DB operations, but haven't been able to in such a short space of time (Roughly 2 days work). An in some cases have simply wanted to get it to work. I hope this is as acceptable as it would be in in a working environment, and that given all the time in the world, the quality of the code would be much better.

9xb Technical Test

Introduction

Welcome to the 9xb Technical Test for Web and Applications Developers. This test has been developed to be simple and straightforward, and give you the ability to show what you're capable of within the technologies listed in this brief.

Take as long as you feel is required to complete the test, but please keep a note of how long you've spent and include it with the deliverables described at the bottom of this readme.

Requirements

The requirement of this test is to develop a server-side solution to perform CRUD operations (Create, Read, Update and Delete) on the list displayed in the supplied markup.

The list should be limited to 10 records in total, and a maximum of 4 records assigned per "Job Role".

For data storage, the solution should use a MySQL database, with a schema that you deem most appropriate.

You don't need to go beyond the above requirements, however feel free to add any additional functionality that you feel will enhance the solution that you produce.

Technical Requirements

The requirements of the solution are that the following technologies are utilised:

  • PHP
  • MySQL
  • Capable of running in a Apache/Linux environment
  • Version Control, preferably Subversion or Git

Considerations

Use best practice for all the code you develop for the solution. We have interest in the following areas:

  • Model/View/Controller (MVC) architecture
  • Simplicity & readability
  • Scalability
  • Security
  • Performance
  • Normalisation in data storage

Markup

The markup to be used for the solution is within form.html.

Deliverables

  • Instructions on how to run your solution
  • A description of development choices made and why
  • How long the solution took to implement
  • Revision history from the VCS. If using Subversion, use svnadmin dump. If using Git, create a git bundle.

About

9xb Web and Applications Developer Technical Test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 77.6%
  • HTML 19.8%
  • ApacheConf 2.6%