Skip to content

Instantly share code, notes, and snippets.

@mooocer
Last active August 21, 2018 09:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mooocer/5678de9aac2fb616b8474a9ed02ab457 to your computer and use it in GitHub Desktop.
Save mooocer/5678de9aac2fb616b8474a9ed02ab457 to your computer and use it in GitHub Desktop.
Work Report for Google Summer of Code 2018

GSoC 2018

Google Summer of Code 2018 Work Product Submission

Field Details
Student Vaibhav Shrivastava
Github @mishuvs
Organisation FOSSASIA
Project Open Event
Technology Android, Flask, Ember JS
App Link Play Store, F-Droid

Project Description:

The Open Event Project is an ecosystem which helps organize all kinds of events including concerts, conferences, summits, workshops and regular meetups. My project consisted of the client applications: Open Event Organizer App and Open Event Frontend, and the Open Event Server on which the clients depended.

Goals

The goals for this summer were :

  1. to complete the existing features in the Organizer App and add others to make it feature complete and production ready,
  2. to implement the Organizer App's feature dependencies on the server so that the above could be accomplished, and
  3. to support development on the Frontend.

GSoC and Project Work:

The community bonding period was utilized to get familiar with the community, its guidelines, its best practices, and study the codebases and related technologies. Being a fairly new contributor to the projects, getting familiar with the latest technologies used for Native Android Development, and unfamiliar JavaScript frameworks and server side technologies for the Frontend and the Server was a majorly difficult challenge. The Organizer App uses Reactive programming with RxJava, Dependency injection with Dagger, MVP design pattern (used previously) and MVVM design patterns (used currenlty for the most part).

My work on the Organizer App mainly focussed on: the App's Authentication Fragments, the Event Settings and their implementations, the App's ability to scan, check-in, check-out attendees, and validate attendee tickets, Event Creation and Updation screens, addition of new APIs like Sponsors API and Tracks API with all supported operations from the server side, along with their respective tests was accomplished as well. My work on the App's Events list was one of the major features added. The list was refactored from a plain list to first use BottomNavigationView which required refactoring the related MVP pattern. It was then later refactored again to use ViewPager requiring refactoring to MVVM pattern, as per requested changes. For all features that were newly implemented or modified, then new Android design pattern MVVM (Model-View-ViewModel) was used and corresponding MVP modules refactored to MVVM. The Authentication fragments were refactored completely in order to greatly improve UX while including dynamism with Android Transitions API. Major bug fixes and codestyle changes were made to continue and increase the best practices used throughout the App. The App's Event list required sales statistics for each event, for which a new sales API was implemented in the Open Event Server. The feature to track devices used for checking-in attendees was implemented to facilitate use in the App. Some bug fixes not specific to the App were also made to the Server. Support for Online Events was added for the Open Event Ecosystem. For the Frontend, crucial bugs were resolved in the Events Management section of the Frontend, and Ticket Fees was implemented for Admin Settings.

Outcome

We were able to achieve the project goals for the projects. The result was a success.

My Contributions

Open Event Orga App

Open Event Server

Open Event Frontend

Screenshots:

Additional Links

Events organized to promote Open Source development with FOSSASIA:

  • Workshop during Phase 1 : here
  • Meetup during Phase 2 : here
  • Workshop during Phase 3 : here
  • Google Developers Group - Indore meetup (130+ attendees): here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment