Challenge Overview

Trixel Challenge series

The Trixel challenge series will be a multi-part series of challenges that will eventually produce an application for tracking a users internet usage across a set of sites where trixel components exist. There are several different pieces of this application that will be developed in parallel then combined in future challenges.

Overview:

In this challenge we want to build a logging API that will accepting calls for storing data related to users visiting websites. The Logging API will be developed using the following AWS services: AWS Lambda(Node.js), Amazon DynamoDB, and Amazon API Gateway. We will be creating an API endpoint for storing the data in DynamoDB.

Scope:

  • You will configure an Amazon API Gateway with a post method that invokes a node.js AWS lambda endpoint. The lambda function will process the data posted and store it in DynamoDB.
  • The structure of a posted object will be
Trixel data posted to API endpoint
{
  "user": "theUserId",
  "visits": [ VisitObject, VisitObject, VisitObject ]
}
Visit Object
{
  "userId": "IfAUserIdIsKnownItGoesHere",
  "cookieId": "uniqueCookieId",
  “url”: “http://whatdomain.com”,
  "viewed_at": "DateSiteWasVisited" 
}
  • The lambda function should verify the structure of the data. The process it adding the user id to each visit object and store it in DynamoDb.

REQUIREMENTS

  • Your submission should include a detailed README with instructions for configuring and deploying your code for the AWS services.
  • Add your lambda code to the repository in the src directory.
  • Your javascript should be well documented including function level descriptions.
  • Your javascript should follow standard best practices and be able to pass a jshint lint test (default configuration).

SETUP & REFERENCE:

Questions

  • Please post any questions or concerns you have to the forum. They will be addressed in a timely manner.

 



Final Submission Guidelines

SUBMISSION:

  • Upload documentation for how to run your submission
  • Upload all your source code as a zip
  • Add lazybaer and gbockus as members of your forked repository
  • Provide a video overview of your submission. Please describe what you did in the video.
  • Winner will be required to submit a merge request on gitlab against the branch specified! 

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30052906