Inspiration
I'm sure this has happend to most programmers. Someone, a cousin, a nephew or niece, asks you how they can learn to program. They're a little young so books aren't the best bet. Coding classes are expensive or time consuming. Online sources just don't seem that engaging. Microtea.ch is designed to fix this problem by going back to the classic era of ham radios. How? Ham radio kits not only taught electronics skills and engineering, they also gave the user a fully working radio at the end. Microtea.ch takes this idea into the 21st century by composing microservices into a fully fledged website for the student to receive at the end of their curriculum.
What it does
Microtea.ch teaches students different principles of programming, such as password hashing, searching algorithms, and sorting algorithms. However, unlike services such as CodeCademy, Microtea.ch gives more than just a quick coding exercise. After completing all the tasks in a project, the student gets a fully deployed application! For each task, the student submits an answer, which is then quickly checked for validity. If there are no errors, then the code is deployed to a microservice, where basic tests are run.
How I built it
I used Ruby on Rails with GraphQL for the back end API. Stdlib was used to create and run the microservices. I actually utilized some microservices of my own for code linting and generating the user's microservices. The code linting was done using ESLint. The front end is a React-Redux app with React Apollo
Challenges I ran into
Building a microservice that creates microservices of its own was rather difficult. There were some metaprogramming challenges, along with using an API that is not usually public. A huge thanks to the stdlib team for helping me at every step and sharing extremely useful code. I also ran into some minor bugs with React Apollo and GraphQL.
Accomplishments that I'm proud of
Microservices that create microservices is pretty darn cool. Also, getting a pretty nice React app set up and deployed (microtea.ch) is really nice.
What I learned
Microservices are a really nice way of calling pure functions that last longer than your average request. Also the intricacies of the Node filesystem library.
What's next for Microtea.ch
More exercises and better testing! I'd love to add continuous integration and real test driven development.
Built With
- amazon-web-services
- graphql
- node.js
- react
- ruby-on-rails
- stdlib

Log in or sign up for Devpost to join the conversation.