Organisation And Project
This summer, we worked on FOSSASIA's Open Event Attendee Android Project. Our goal was to match missing functionalities in our API and implement payment gateways to help ordering tickets, which we have successfully accomplished. The app can be found in the Play Store or F-Droid with the name Eventyay Attendee.
With Eventyay Attendee, users can search for events around the world with detailed information and buy the tickets for those events. The app can also be used for checking in with QR code and saving favorite events.
Eventyay Attendee App provide features for users:
- Searching/Filtering/Sorting for events based on event name, location, event type, date.
- Create an account in Eventyay system to manage tickets and user information.
- Registering for free tickets, buying for paid tickets with Paypal or credit card.
- Donating for the organizer with donation tickets.
- Viewing registered tickets for an event and downloading tickets/invoice in PDF format.
- Checking-in easily with QR Code.
- Adding favorite events in Favorite Section.
- Sending speaker profile and proposal for an event containing Speakers Call.
- Writing a feedback or reporting an event.
- Looking for similar events.
The codebase of Open Event Android is written in Kotlin and it is following the MVVM architecture. We are using Retrofit Library for making network request, RxJava for asynchornous call and room for local caching.
Community Bonding Period (May 7 - May 27):
- Got in touch with the mentor and discussed about Project goals.
- Read Fossasia's coding conventions and spend time understanding the codebase.
- I started with Code Refactoring which helped me understanding the modules better.
- Added sponsors, code of conduct, speakers and sessions, speakers call, track sections.
- Improved QR code of tickets (improve screen brightness, match QR code with Organizer app).
- Fixed memory leaks.
- Added shared element transition when navigating between different sections of the app.
- Saved tickets locally when there is no internet in the app.
Coding Period 1 (May 27 - June 29):
- Implemented offline payment methods for ordering tickets.
- Implemented billing information section for ordering tickets.
- Implemented time counter for ordering tickets.
- Implemented feature to create speaker profile for speakers call section.
- Improved app's UI in Events, Orders, Favorites, Search, Profile section.
- Implemented Stripe payment gateway.
- Improved app with data binding.
- Implemented downloading invoice feature.
- Added sign out/log in while ordering tickets.
- Fixed incorrect custom forms implementation while ordering tickets.
- Implemented recent search query feature.
Coding Period 2 (June 29 - July 23):
- Added crop image, delete image, take photo for updating profile picture.
- Added donation tickets feature.
- Added ticket detail section.
- Improved network calls by chaining and zipping RxJava.
- Added PLACED and PENDING orders in Orders Section.
- Improved app with pagination.
- Added filtering and sorting orders.
- Added Vietnamese translation for the app.
- Added searching for country name in countries selector.
- Added delete account feature.
- Added sending proposal feature for Speakers Call section.
Coding Period 3 (July 27 - August 20):
- Added feature to take/edit/remove profile picture of speakers.
- Added auto link for text in the app.
- Implemented custom forms for speakers/proposal in Speakers Call Section.
- Added ticket currency in Ticket Sections
- Added PayPal payment gateway.
- Saved tickets in the app locally.
- Added expanding/collapsing animation.
- Fixed bugs and wrote documentation for the app.
Coding Contributions :
- Contributions in Open Event Attendee Android
- Contributions in Open Event Organizer Android
- Contributions in Open Event Server
- Issues (Opened - Open Event Attendee Android)
- Issues (Opened - Open Event Organizer Android)
- Issues (Opened - Open Event Server)
- Issues (Opened - Open Event Frontend)
Ticket Detail Screen
User Profile Screen
Tickets List Screen
Events List Screen
Tickets List Screen
Payment for Tickets Screen
Favorite Events Screen
Searching for Events Screen
Event Details Screen