Field | Details |
---|---|
Student | Saurav Tiwary |
Github | @srv-twry |
Organisation | FOSSASIA |
Project | Open Event |
Technology | Flask, Ember JS and Android |
The Open Event Project offers event managers a platform to organize all kinds of events including concerts, conferences, summits and regular meetups. The various components support organizers in all stages from event planning to publishing, marketing and ticket sales. Automated web and mobile apps help attendees to get information easily.
There were two major divisions of this project:
-
Implementation of numerous features on the Open Event Server in order to make it feature complete. Some of the features that we aimed for were the integration of payment system, tickets, taxes, promo codes etc.
-
Integration of missing endpoints and related features on the Open Event Frontend and Open Event Orga app. Some of the features that we aimed for in the frontend were the implementation of promo codes, notifications while tracks and speakers endpoints were targeted for the orga app.
Considering that we were able to achieve the project goals as well as implement additional features as our stretch goals, the project was a success.
We kicked off the summer with the bonding period. Most of the time in the period was utilised in understanding the organization's community. Additionally we started the implementation of few of the missing endpoints in the orga app. We were able to successfully integrate the tracks and parts of the speakers api in the orga app.
Tracks | List of Speakers |
---|---|
A lot of crucial features were implemented in this period. The highlight of this coding phase was the successful implementation of the custom Date and Time pickers in the Orga app which allowed us to remove the use of observable fields in the models. The other important ones are as follows:
- Server side integration of Stripe Express checkout for the event wizard.
- Addition of a schema defaulting decorator in order to fix the schema validation in the server.
- Addition of unit tests for the speakers module in the Orga app.
- Refactor of the Settings endpoint into Public, Non-Admin and Admin schemas.
A lot of minor bugs such as Internal server error were solved along side the above mentioned features.
Custom date and time picker |
---|
We started to gather momentum by the start of the coding phase II and hence this phase was the most productive coding phase of the project. We started out with the aim of completing the most important features of the project in this phase so that we can have ample time to test the features before they are pushed to production. The highlight of this coding phase was the successful implementation of the Orders endpoint in the Open Event Server. We were able to integrate payments via both Stripe and Paypal. Another major achievement of this period was the integration of Soft Deletion support in the server. This meant that the admin of the platform could easily restore all the user and event related information with a single click! Other important features implemented in this period are as follows:
- Server side implementation of the Tax endpoint.
- Implementation of endpoints for accessibility of Access & Discount codes via it's code.
- The API integration of Access code creation in the Tickets tab in the Open Event Frontend.
- Refactor of the Main Presenter in the Open Event orga app which led to improved architecture and code readability.
- Addition of a Rate Limiter in the Abstract observables in the Open Event Orga app which fixed multiple instances of infinite loops present in the project.
As always numerous bugs were fixed in this period as well.
The third coding phase involved implementation of the remaining targets of the project. Most of the work on the Server side was done and hence more emphasis was given on the Frontend side. We started off with the implementation of the My Tickets tab in the Frontend. We then moved on to the implementation of user input validation throughout the project. Lastly we were able to implement automatic Order expiry in the Server.
By this time, we were able to successfully achieve all the targets of the program. Since we had a good part of 2 weeks left in the coding phase we decided to go ahead with our stretch goals. The first stretch goal accomplished was the implementation of the Attendee form builder both on the server and frontend side. Now the event organizer could specify what information to collect from the ticket buyers which was a highly demanded feature. With a week still left in the coding period, we decided to integrate action buttons in the Notification panel. We started off with the server side support and quickly moved on to it's frontend integration.
Apart from the above mentioned features, we spent a lot of time on fixing minor bugs and addition of unit tests whenever possible.
Notification Panel | Attendee Form Builder |
---|---|
Even though almost all of my work is done, there are still other areas in the overall project outside of my GSoC project's scope which needs some future work before one can start using the platform.
Apart from the above mentioned areas, there are certain features that can be integrated into the system in order to make it even better. One such feature can be to support refunds in the platform which will allow the ticket buyer to return the tickets if allowed by the event organiser. Another nice addition can be to add more customization options in the basic version of the Attendee form builder.
All of my blog posts related to my work can be found in the FOSSASIA Blog http://blog.fossasia.org/author/srv-twry/
My Scrum Reports which includes daily work report can be found here.