Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Google Summer of Code 2019 Work Product

Saicharan Reddy | @mrsaicharan1 | FOSSASIA

During the course of this summer, I've worked on FOSSASIA's robust event management solution, The Open Event Project. I've been building features and fixing bugs for the project by contributing to the frontend & backend repositories namely, Open Event Frontend and Open Event Server.

About the Project & Technologies

The Open Event Project, which is popularly known as Eventyay is an event management solution which aids organizers to manage public events, conferences, tech meetups etc. and supports the sale of paid, free and donation tickets. In addition, the management of a huge event becomes less of a cumbersome task due to the provision of sessions & speakers management, session scheduling, features to add sponsors and events in different tracks. Features such as inviting users to be organizers/co-organizers for events, exporting events in various formats is also integrated into the system to ensure interoperability between various softwares.

Taking into account the Open Event Server, I've mainly worked with Flask which is a python framework used for server-side development and building APIs. In addition, I've utilized the robust architecture of Ember.js to handle the frontend pipelines and consumption of the backend API alluding to the project. Throughout the course of my project, I've worked primely with the integration of Omise and AliPay payments gateways, refactor of the Order/Ticket flow to ensure security, implementation of donation tickets and related validations and implementation of organizer invoicing with PayPal integration. I've also added unit & integration tests for all the modules and fixed bugs which had occurred due to the migration of v1 to v2.

Phase-wise Contributions:

Community Bonding:

  • Solved existing tickets/order bugs and resolved issues alluding to ticket security & order invoices.
  • Read up the documentation of Ember.js, Semantic UI and AliPay payment workflow. Added missing integration/unit tests and fixed tickets & session bugs to make the system ready for new features.

Phase I:

  • Implemented modules for AliPay Payments using Stripe Sources and Charge creation & made it compatible with existing workflow
  • Worked on the server logic of Omise charging and Payment flow. Solved some blocking bugs to integrate it completely with the system.
  • Enhanced the admin module of the project by adding initial invoice section and organizer billing info.
  • Created a fallback system for email service and fixed bugs which had arisen due to the same.
  • Added integration tests for features such as deletion of accounts, admin authentication and features developed by other co-developers

Phase II:

  • Implemented donation tickets to support NGO/Open Source events with zero pricing
  • Fixed bugs due to variable pricing and enhanced ticket validations
  • Began work on organizer invoicing and implemented invoice generation and calculation of event invoices
  • Implemented ember tables for invoices section and added integration tests to ensure proper workflow
  • Fixed bugs related to ticketing and tax issues which had arisen due to newly developed features

Phase III:

  • Added admin billing options for organizer invoicing and connected the whole workflow.
  • Implemented the PayPal payments for organizer invoice payments and worked on the review route logic. Communicated this with co-developers to test the event invoicing as a whole.
  • Integrated dynamic Google-Maps for event venue directions and search filtering.
  • Towards the end of the phase, I've implemented integration tests for Payment Managers of Omise, AliPay and PayPal to ensure that future fixes/features wouldn't break the payment workflow.

Code Contributions:

Others:

(Outreach Event)

@pradeepgangwar
Copy link

pradeepgangwar commented Oct 12, 2019

Looks good

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