I worked on Open Event Organizer, an Android Application for Event Organizers and Entry Managers in this summer with Areeb Jamal. It is a client side application for another project under FOSSASIA named Open Event Organizer Server.
The core features implemented in the app are:
- Scan a QR code to validate an attendee's check-in
- Overview of Sales
- Ticket Management
- Edit Basic Event Details
- Offline Support to the above mentioned features
The app is designed on the Model View Presenter Architecture which enables robust unit testing. Each feature implemented in the app has a complete coverage of unit tests.The project structure is kept module wise which increases the code readability. Inline documentation is provided wherever necessary in the source code. The app uses most of the modern open source technologies like ReactiveX API for multithreading, Dagger for dependency injection, OkHttp+Retrofit for handling network requests, Evernote's android-job for handling jobs in the background, jsonapi-converter to handle JSON API schema responses, Google Vision API for scanning QR code, Glide for image loading/caching, Jackson to parse JSON data, Leakcanary to detect memory leaks, Lombok for logs, Mockito Framework for unit tests, DbFlow ORM database library, Data Binding etc. Material Design Guideline is followed for the UI in the app. I have worked on the entire architecture of the project along with Areeb and also worked on testing and bug fixings in the code.
Currently, the application is released in alpha phase at Google Play Store here.
- Blog Posts
- Daily Scrum Reports on the progress
- The work that is still going on
- Blog link tweets by me during the period
- FB posts by me during the period
- FB page of an event I organized at my college campus
The next step for the app would be making it into a complete client side application with all the functionalities given to the user by the server. The major goals in their preference order are:
- Create and Edit Event
- Overview of tracks and sessions
- Quick session re-scheduling
- Push notifications for certain triggers
- Sell Ticket (Create Attendee)