chapter nine

9 Code Developer University

 

This chapter covers

  • An introduction to AWS Glue and Amazon Athena
  • Using EventBridge to connect system components
  • Using Kinesis Firehose and Lambda for at-scale data processing

One idea that we’ve been mulling for a bit of time has been a web app designed to help developers learn programming skills in a fun way, with gamification and useful analytics.

Our idea - let’s call it Code Developer University – evolved into a proof-of-concept website with a collection of interesting programming challenges for budding developers to solve and build skill. Each challenge would pose a problem, the student would have space to type in their solution and then submit it to my system for processing. The system would run the solution through a battery of tests and decide whether the solution passed or failed. If the solution failed, the user would have a chance to update their code and resubmit again. If the solution passed, the user would advance to the next challenge, and receive between 50 and 500 experience points (XP) based on the difficulty of the problem.

9.1 Solution overview

9.1.1 Requirements overview

9.1.2 Solution architecture

9.2 The Code Scoring Service

9.2.1 Submissions Queue

9.2.2 Code Scoring Service summary

9.3 Student Profile Service

9.3.1 Update Student Scores function

9.4 Analytics Service

9.4.1 Kinesis Firehose

9.4.2 AWS Glue and Amazon Athena

9.4.3 Quicksight

9.5 Summary