Field | Details |
---|---|
Student | Vaibhav Shrivastava |
Github | @mishuvs |
Organisation | FOSSASIA |
Project | Open Event |
Technology | Android, Flask, Ember JS |
App Link | Play Store, F-Droid |
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.
The goals for this summer were :
- to complete the existing features in the Organizer App and add others to make it feature complete and production ready,
- to implement the Organizer App's feature dependencies on the server so that the above could be accomplished, and
- to support development on the Frontend.
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.
We were able to achieve the project goals for the projects. The result was a success.