Validating an internship is mandatory within the MALTT. I wanted to do something related to video games while learning something new. Eric Sanchez gave me the opportunity to work on a project in his lab, the LIP (Laboratoire d’Innovation Pédagogique), involving a pedagocical video game headed by Mariem Jaouadi. They gave me the choice between a research-oriented or a dev-oriented intership. I jumped into the second option because I wanted to use my recently acquired skills from 42 Lausanne.

Find the report of my internship here (in french).

During my 16 weeks of internship, I spend the first days understanding the context and got the theoretical background of what a RESTful API is and how it can send data to an SQL database.

I hesitated to begin coding with Java Spring, but since I got no former experience with Python, I decided to go with the latter.

Then I followed courses on how to learn Python which was quickly done thanks to my background in coding in C and C++. I followed PEP8 style guide to have an clean code.

When it came to design the RESTful API, I needed to choose between Django and Flask, the first one being a ‘batteries included’ framework versus the micro-framework Flask. I chose to go along with Flask as the lab did not need the whole Front-End that Django is offering, a simple Back-End app with Flask was doing the job. I then followed parts from the Flask Mega Tutorial while enhancing the entire architecture using blueprints, decorators, error handling, a route to export logs in a csv file, an ACL and token auth (JWT).

Finally, with the help of the system engineer Stéphane, he gave me the rights to locate my app in the server. I then deployed and did the necessary tests to say I successfully deployed the RESTful API in the lab’s server! Yaay!

Find the GitHub repo of the RESTful API with its documentation and a video in french on how it looks like.