GithubHelp home page GithubHelp logo

nathan-d / emea-build-hackday Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 2.0 327 KB

A single page application to score build complexity for AWS solutions

JavaScript 11.23% CSS 13.90% HTML 62.88% Python 11.99%

emea-build-hackday's Introduction

EMEA Build Hackday

architecture diagram

Overview

The inaugural hackday for the FAWS EMEA Build team is intended to achieve the following:

  • Increase team exposure to the AWS platform around key but infrequently touched technologies
  • Provide a centralised (non-Excel) alternative for Simple Build calculations with support for versioning

There are two main components to the hackday, the serverless application and the supporting AWS infrastrcuture. Groups should be created to work on each of these areas with owners agreed for each of the distinct tasks that come out of the design session.

The suggested agenda for the day is:

  • 09:00 - Google Campus opens its doors.
  • 09:15 - Beverages are secured and hackday project discussion and design start.
  • 10:00 11:00 - Russell arrives and buys everyone drinks as penance.
  • 12:00 - Lunch of some sort (facilities uncertain) and regroup.
  • 13:00 - Back at it for further awesomeness.
  • 16:00 - Wrap-up with final update from team.
  • 16:30 - Drinks

Working Structure

To ensure we're all working in roughly the same way the following is recommended:

  1. Ideas for discussion, development, or change, should be raised as issues on the GitHub repository
  2. Branches should be created for each issue and issues should focus on distinct elements of functionality
  3. Each engineer or group (Where paired coding) should work in a branch and never in master
  4. Pull requests should be used to merge branches into the master branch
  5. All supporting documentation for this project should exist in the repository

Project Goals

  • To produce a Single Page Application (SPA) to replace the existing Excel spreadsheet
  • Allow the SA community to get instant feedback on build complexity
  • Support submission of simple build score, product breakdown, and customer details
  • Provide notification functionality to allow for build team notifciation on submission
  • Act as a reference serverless architecture for the team

Suggested next steps

The below can be viewed as discussion points for the design session or as a check list during development.

Application

  • Add submission functionality to Application
  • Architecture review should support colours coding as per the Excel documentation
  • Improvide review page with visualisation component
  • Use Rackspace's Canon styling framework

Infrastructure

  • Agree AWS products required to support the functionality outlined in the Project Goals
  • Using software of your choice create an architectural design
  • Decide on API structure to support the application functionality
  • Agree Lambda functions to be created and the functionality they are intended to support
  • Decide if a datastore is required and if so which one
  • Which notification solutions are best fit for the Project Goals and what third party integrations would add value?

Reference

emea-build-hackday's People

Contributors

fresno16 avatar nathan-d avatar

Watchers

 avatar  avatar  avatar  avatar

emea-build-hackday's Issues

Rework lambda function

The python lambda function created during the hackday needs some refactoring to make it a little more defensive in its queue processing and include proper error handling.

Add scoring functionality to application

The application should support the scoring functionality currently available in the excel document.

Requirements

  • Support scoring system as found in the Excel document
  • Display the selected services and processed score prior to submission
  • Use colour coding (Green, Amber, Red) for service groups

Successful submissions should create JIRA cards

We should investigate if its possible to create new JIRA cards on the successful submission of a Simple Build.

To ensure this drops into the Simple Builds JIRA swimlane the card will need the respective label added.

Progress bar should be persistent in all form views

image

The progress bar only exists in the context of the customer form at this point. If this is intended for use in application it should be present in the parent form with progress tied to form component rather than in the form component itself.

Application should support uploading of HLP document

To remove the need for the SA/SE emailing the build team we should look to add support for the uploading of HLP documents via the form.

HLP documents should be uploaded to a private S3 bucket and a reference added to the DynamoDB row.

Form validation

Our form fields don't perform any validation. We should add in the following:

  • Field content type validation
  • Handle account validation and checks in the backend
    • Perform notification actions where a submission was against an invalid account, etc.

AWS services data should be pulled from the API

As suggested by @Fresno16 - we should pull the services score and associated data from the database on form load. We can do this by exposing this data via an API endpoint.

Note that the form should be able to handle latency gracefully and the inability to access the endpoint by notifying the user.

Form submission

Our application's submission functionality is currently just a stub. This functionality needs to be added.

Cloudformation all the things

Now we've got the project working and build via the console, lets make it work with Cloudformation. This will allow the project to be reused as a demo and for other initiatives.

Add favicon

We should drop in a nice FAWS or Rackspace favicon as a web apps asset.

Add notification functionality

On successful processing of a Simple Builds message we should perform the following notification actions:

  1. Send an email to the build team and the submitting SA stating the build has been successfully submitted and should be reviewed by a build engineer.
  2. Notify the submitting SA where the submissions failed validation checks as per issue #18 (If we implement this feature).
  3. Send a Slack message to the FAWS Build Team channel.

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.