Using Material Design for the Open Event App

This week I had the chance to go into more depth on the material design principles and I must say that the design itself is awesome. So, I got  started building the user interface of our event app.

After looking at a lot of apps. I decided to make a recycler view list of cardviews. Cool right? Looks awesome too. I did this by put an imageview, relative layout and a linear layout in a linear layout. In the second linear layout I added the textviews for the position, organization. Finally the description textview was added in the relative layout. This is how I designed the card layout. Now for the recycler view of cardviews, I added cardview layout to the recycler view adapter to make the list of cardviews.

I also wrote unit tests for the database this week as suggested by Mohit. At first, they were failing and since I didn’t have any experience writing tests for databases, I wasn’t able to debug them. So, I took help from mohit who ended up identifying the problems which was arising due to the singleton in the database. Apparently, You can’t use singletons in a test because we don’t control the creation of the singleton object, as it is performed inside a static method. There is no way to mock the object in order to test the behavior of our method in isolation. So for now mohit has used dependency injection to make the tests work but I am working on a way to remove the injection.

This is pretty much all from this week. Adios !!

Basic UI implementation for Event app

I am enjoying this a lot. It has been a wonderful experience till now working with all my team members and my mentors. I mean I am learning something new everyday. Like I have learned squashing git commits using rebasing and pushing, which I am using a lot now. I am also following a code review policy suggested by mohit where I push to a new branch on my fork and then create a PR, after which mohit reviews my code and then merges it. This is a very nice practice and I think that every open source developer should follow such practices to get the best quality code out there.

Moving on, this week I was mainly working on implementing the UI for the app. For this I studied layouts of various apps and came out with what I though was best. So I though I should implement the Tracks Fragment First where I add all the tracks I have updated inserted into the database in a recycler view. I take up a very basic layout for now just showing the track name and description.

Screenshot_2015-06-12-20-53-13

I also added the sponsor fragment where I have used Picasso by Square Inc. to download the Logo images and displayed them in a recycler View. Here also I researched various options to download the Sponsor Logo images and I come up with one clear winner : Picasso. We can resize image, load from URL’s,drawables etc. all in just one line of code.

I also added the speaker fragment in which I used a bit complex layout as I had to get the speaker image, name, designation and description all in one recycle view ViewHolder. So after some hiccups I managed to get it right. I used Picasso here as well for the speaker Image. Although I still have to add further details to this fragment and the others. I’ll do so in this week. I am planning on adding some material design with some clickables for different holders. I have also started to work on a list of cardviews as well.

Screenshot_2015-06-12-20-53-28

Open Event Management Application: An Exciting Beginning

The idea of Open Event is to build an App and Management Utility for Tech Conferences and related events. It was selected under Google Summer of Code 2015. I will be working with the organisation FOSSASIA which is the largest Open Source organisation in Asia. To add to my excitement, my mentor is @mariobehling who is none other than the founder of Lubuntu. And my other mentor is @dukeleto who has been teaching us a lot of useful stuff like how to write scrum mails, manage issue tracking and documentation on github, among others.

So, let me describe a little more about the project. We call it ‘Open Event’, and we aim to make it a easy to use solution for all Open Source (or otherwise) event/conference/seminar/workshop organisers to be able to host data about their sessions, speakers, tracks, and be able to show this to the attendees using a Webapp and an Android App. You can always read more about the project goals and track the current progress at the umbrella project on Github.

Rafal is mainly working on the server that will host the data and he’s writing that up in Python, and using flask-admin to create the dashboard. Manan is responsible for the Android app (which I secretly wish I had got, because I love to work more on Android than anything else), while I am going to create the webapp .

The idea behind both the Android and webapp will be to allow event organisers to generate their own apps, without having much technical knowledge. Ideally, when our project is finished, The organisers should be able to create an Android app and a webapp, without writing a single line of code. They would just fill the event name, the color scheme etc, and then fill the data about the sessions, speakers, sponsors, tracks, locations etc of the event.

We hope by the end of the summer we can be ready with a service/product that all event organisers would love to use to host their events on in the future. I’ll follow this blog post up soon with technical details about each component, and the API schema we have adopted.

Right now, it’s 4 days past the ‘coding start’ date, and I have not coded a lot, because I have spent most of my time trying to learn AngularJS, which was very new to me. I should get back to writing more code, and stop writing blog articles, or else Duke and Mario won’t be too happy with me 😛