EngineeringWiki
  • Introduction
  • Top level Overview of the application
  • FAQs
  • Back End
    • Agent Pipeline
    • Mention Pipeline
    • Profile Pipeline
    • Errors
    • Overview of the Mention/Profile/Cluster Process
    • Adding a New Service
    • Activity and Status Tracking
  • Setup
    • Overview
    • How to Setup Your Local Machine
    • Setup - Cloud Machine
    • Infrastructure
    • Docker
    • Bash Commands
    • Setting up front end in Ubuntu 16.04 desktop
  • Gems/Libraries
    • Bax
    • Creating fixtures for Unit Tests
    • Audienti-Retriever
    • Scour
    • Haystack
    • Audienti-Indexer
    • Audienti-Api
    • Handler
    • Blackbook
    • Allusion
  • Code
    • Multi-step Modal Wizard
    • Structure
    • Audienti DataTables
    • Javascript
      • Passing Props From Root
      • Looping in JS
      • Binding Actions to App
      • CSSTransitionGroup
      • Code Best Practices
      • Reducer Updating an Array with Item in Middle
      • Organizing Javascript
      • Filter Array by Id
    • Design Language
  • Working
    • PostgresSQL
    • S3
    • Terminology
    • Interview Tests
    • Application Descriptions
    • Best Practices
      • Code Organization
      • Code Documentation (using Yard)
      • Git Workflow
      • Tasks and Queues
      • Working in Backend
    • Profiles & Enrichment
      • Profile ID Rules
  • Management
    • API Management
    • Bastion
    • Splash Proxy
    • Rancher
      • OpenVPN Server
      • Traefik Reverse Proxy
  • Teams & Interviews
    • Interview Questions
  • Culture
    • What Makes a World Class Engineer
  • Situational Statuses
    • 2017-11-03
    • 2018-01-09
  • Operations
Powered by GitBook
On this page
  • Background
  • Goal
  • Status
  • Why are we looking for a front end person
  1. Situational Statuses

2017-11-03

PreviousSituational StatusesNext2018-01-09

Last updated 7 years ago

As of 3 November 2017

Background

We have an existing application () that has received solid reviews and feedback. We have continued to do demos of the old application until recently, and we have approximately 100 trials waiting on our new release, and some deals of substantial size being discussed. So, we are anxious to get this into a testable form as soon as possible.

You can see the most complex part of the UI at this link. ()

You can also see the work breakdown at this link. ()

We are refactoring this application to fix two primary issues

  • Scaling Problems on the backend

  • UI speed and performance on the front end

Goal

The goal of the effort is to "clone" our existing application

  • Reimplement the backend (mostly done) to fix scaling problems and confusing data structure

  • leverage React to create a front end that is fast and responsive (a Dom/Web version of our application).

  • build a foundation for the next 5 years, as we do things such as implementing a native version of our application at some point in the future. Our first deliverable is a DOM/Web-based application.

Status

Most backend/structural changes have actually resulted in less complexity than our old application. Otherwise, we are cloning the existing application. There is a LOT of CRUD in the app. Most screens are simply setting data that the backend uses to produce results (charts etc).

A large chunk of the API is in a first draft stage, and waiting for us to get a front end hitting it to sort out if things are missing.

The backend is written in Rails 5.1.x (newest version). The api and other actors (like Jobs etc) have approximately 80% test coverage . Extensive Unit and Integration tests have been written for the back end.

We use Asana. There is a work breakdown for this chart with an API and a UI task for each of these elements to get the foundation in place. We use Github for the code repo, and Slack for team communication.

React app is the most recent version. We use Redux as well. Jest for testing. Axios for async calls. Auth0 for authentication.

Why are we looking for a front end person

I've had a developer on this that has struggled to deliver in a timely fashion. In fact, in the last month, we have made little if any progress on the application. Most of this has come from my rejections of the code he is developing... which has a number of flaws such as:

  • Lack of tests (Jest is installed, but no tests have been written)

  • Not DRY (we do a lot of CRUD, his CRUD actions are all identical and duplicate).

  • Using Jquery and Jquery AJAX calls instead of promises and things like Axios.

  • Inconsistent code, lots of differences in file naming, variables names (mixing lower_case and lowerCase etc.

The net is that I get the feeling that he's learning React/Redux on our time.. which we don't have the time to do. We need someone that knows this cold. So, we are not super far long on this yet, and need to start making substantial progress.

The front end is built on GenesisUI as a foundation () This provides the "style" we are following for the application. It also provides some basic react components that are pre-written for the layouts with some modifications. It's a essentially a foundation.

We have broken down the work into a . This structure mimics the structure in the legacy application, with removal of elements we are not implementing in the new version of the app.

https://audienti.com
https://drive.google.com/file/d/0B0YPWObz9KADTnFwT3l1SEpJRm8/view
https://omalab.gitbooks.io/engineering-wiki/content/structure.html
https://genesisui.com/demo/?theme=root&version=react
structure