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:
- Request access to the Gitlab group by posting on the forums or email gbockus.
- Once added to the team, fork the logging-API repository and work off this branch.
- AWS lambda documentation and use cases
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!