Learn REST API with Flask Restful and MongoDB (Workshop)
What the workshop is about:
We all know about IMDb. So think of a situation where the Film Club in the college or university happens to host monthly Film contests. Now, what if we could provide the audience a chance to actually express their views and opinion on the films that are being screened.
With this in mind, the workshop is going to build an application, Short Film Database with a solid backend API which will invite more development options from App developers who will be able to consume the API through their own Frontend implementation.
This is the basic idea of a RESTful API.
Python being one of the most famous language and its awesome to work with, Flask Micro Framework is going to be the obvious choice. Now, most workshops tend to deal with Django, but not always do we need all the features and packages that Django comes with.
Plus, the workshop will use MongoDB, a NoSQL database instead of the traditional MySQL or PostgreSQL that we see in most Workshops. They are indeed great options, but its also nice to learn about new Stacks that modern industry needs.
They will learn about the implementation of a full fledged API, the different stages of development, how the stages evolve from a mere idea.
Additionally, they will have hands on experience with various industry level Open source Development Tools and Open source libraries.
So the plan is to start off with Basic introduction (just a verbal explanation, no codes yet) to Python 3, Flask Framework and MongoDB, which would be over in 30-45mins.
This should go as planned if the audience is already aware of the language and its usage. If not, we will take another 2 hours, explaining basics of Python and Database.
We will then move onto the Requirement Analysis and brainstorming the various entry level features for the application.
Once students have their Requirements, they will start right away with the implementation. Now this being a lengthy part of the whole workshop, and it also depends on the speed of all the participants, it should take about 5-6 hours as a whole for the part to complete.
If time permits, they can go through their code once again, ask more doubts apart from the ones that are welcomed during the session.
Participants are expected to have a Laptop or PC(if from Lab), with a Linux based OS ( preferably Ubuntu, else capable of handling the package installations ). They should have Python 3 installed, their favorite Development tools (if any, or better use Sublime Text 3), MongoDB can be configured during session. And of course, Internet.
I work at Hashwave Technologies Inc, a company that loves Data Science and Data Analytics. We use Flask for our products and we absolutely love the framework.
I am also one of the winners of Google Summer of Code 2016, an active member in Kochi Python group, a self taught programmer, and am basically FOSS guy.