Git Product home page Git Product logo

techtest's Introduction

Hi, Supermetrics!

Thanks for taking the time to talk to me the other day. Here is my technical assessment as requested.

Methodology and Justification

Server Side

Post gathering and parsing is mostly performed server-side with the exception of some minor formatting which is done in the Vue application.

The server-side application is built by using an abstract base class which contains common functionality for the GetPostsByPage and GetUserData classes. This is to ensure that the code remains in easily maintainable files with strongly separated concerns.

The Application uses a naming convention that would allow it to work with an SPL Autoloader with minimal (or zero) configuration.

The classes are coded to a tweaked version of PSR-2 standards (I prefer some extra spacing around my logic blocks), and use DocBlock comments.

There is a suite of PHP unit tests in the 'tests->php' folder.

Client Side

The client side application is built with Vue. My exposure to SPA JavaScript frameworks is limited, so I'm afraid I had to learn Vue from scratch for this, so I hope that the client-side app looks ok.

The client side consists of three apps, a homepage (with a copy of this message), a 'posts' page, which has the post listing, and a 'dashboard' page for displaying each user's post date.

For convenience, I've added a function to the dashboards page that fetches all the available users, and allows you to select one from a drop-down menu, which will then load their dashboard.

I haven't added much in the way of styling, but I've used Bootstrap in there for some basic structure.

Application Structure

Server-side (API)

  • Application
    • PHP Application files
  • tests
    • PHP - PHP Unit tests

Client-side (Client)

  • Standard Vue CLI configuration

techtest's People

Stargazers

Mohammad Al-Kharraz avatar

Watchers

James Cloos avatar James Filby avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.