Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Google Summer of Code 2017 | Medozonuo Suohu | FOSSASIA

GSoC 2017

GSoC Final Submission | Medozonuo Suohu | FOSSASIA

Overview of GSoC 2017:

I worked on the Open Event Organiser Server Project of FOSSASIA organization as part of my GSoC this year. Open Event Organiser Server project is an open source event management platform which comes with all the various different features related to an event. This year, the main aim of the project was to decouple the frontend and the backend. I worked on the backend part of the project. This involved setting up servers and making REST JSON apis. During my community bonding, I went through the JSON api specifications and various options to implement JSON API. Finally we decided to use Flask Rest JSON API framework with JWT Authentication. JWT Authentication helps implement the various permissions and determine which endpoints are available to whom. There are 4 main methods that are possible: GET, POST, PATCH and DELETE. The API endpoints (mostly) accept a jsonapi data type and returns a jsonapi type data. I along with my team implemented the basic API structure for the different endpoints that would be necessary to implement the platform. The APIs based on permissions are of 3 different types - User, Organizer and Admin. We allow different features such as speaker registration, session submission, buying tickets, setting discounts, creating micro-locations, sponsors and many others. The admin based endpoints help in configuring the server by updating various keys, etc and help keep tracks of various activities. There are also other micro-services such import/export of event, email system and notification to name a few.

A short video on the work product of the project done so far.
Open Event API Server

Main Areas of Contribution:

  • Setting up the basic JSON API architecture using Flask Rest JSON API framework and JWT Authentication
  • Documentation of all the endpoints using API Blueprint and rendering it using aglio’s two column layout
  • Unit testing of the various helper functions used by the API endpoints
  • Dredd testing of Documentation to ensure that change in an API is reflected in documentation and vice versa
  • Implementing celery in the new API framework to support import and export of events, email services and notification.
  • Implementing import and export of events via file handling in the API.
  • Sending emails and notification to users based on various actions.
  • Implementing FAQ and Feedback API for events.

Links Related to Code Contribution:

Other Relevant Links:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment