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 !!

Continue ReadingUsing Material Design for the Open Event App

Selecting a data API

As I had already mentioned in the earlier post as a part of our GSoC project we are making a framework that lets Event/Conference organisers easily generate their own Webapps and Androi Apps for the event.

So the initial step was the concur on a data API. Because for the framework to work seamlessly for multiple events, all of them must be able the collate their data in form of a single API, so that the core components of the web/mobile app that display the data can be consistent.

Fortunately, there existed already an effort to create a standard API for event data – the re-data API made by OpenDataCity for the re:publica event.

While trying to remain compliant with the re-data API we started off with a simplified subset of it.

Our API will have semantic versioning, and initially we are establishing v1 of it. So all API endpoints have the prefix /get/api/v1/

There is one top level /event endpoint that lists the basic info of all the events. If further details of an event is needed, we need to navigate into the namespace /event/<event-id>/

As you can see listed on your API docs here there are endpoints in the form of
/event/<event-id>/sessions
/event/<event-id>/speakers
/event/<event-id>/tracks
and so on, to return a list of sessions, speakers etc for the given event-id.

Continue ReadingSelecting a data API

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

Continue ReadingBasic UI implementation for Event app

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 😛

Continue ReadingOpen Event Management Application: An Exciting Beginning

Adventure developing an Open Event Application

My adventure with the FOSSASIA organisation developing an Open Source event application has begun. I’m working in multicultural team and I feel very excited. It’s quite funny that while you are working, your team sleep. Our mentors of Fossasia are very helpful (@mariobehling and @dukeleto). Duke is a real magician. When I ask him for help, I find a solution before he response to me 🙂 But the truth is that When I’ve got a problem, they always try to show me a good direction.

 

Our application is intended to create events in a quick and comfortable way. It will have the ability to manage multiple tech conferences. Every user will able to see the latest conference in Web App or Android app. So in general we are triple team. Each of us is responsible for another part. Manan is responsible for Android application, Arnav for Web App while me for server which supplies an Api to Android and Web App. I guess that cooperation in our team is good! I greatly get along with guys.

Continue ReadingAdventure developing an Open Event Application