Category Archives: Android

Not even half the people at HackRU

HackRU Fall 2014

Finally caught up on sleep from this weekend’s hackathon. For those of you who don’t know what a hackathon is, a hackathon is an event that usually lasts for a day or two in which people try to implement new computer hardware or software ideas in an individual or small group format. It usually has nothing to trying to break into databases, security, or any sort of illegal activity. There certainly are some great events for this, one of the more notorious being DEF CON in Las Vegas. The hackathon that I was at was HackRU, a 24 hour hackathon at Rutgers.

The first problem that you have to solve at a hackathon is what you are going to try to build. Idea generation and brainstorming can take a considerable amount of time, and with a 24 hour deadline it is a good idea to come prepared with an idea or two in mind. Luckily for me, I already knew two programmers that I wanted to work with and we had decided on an idea before heading in to the hackathon. We added a fourth hacker a few days before who couldn’t dedicate the full 24 hours as he had work the following Sunday. He floated between doing some of his own learning and trying to figure out our pretty messy work flow. The idea for what to build at HackRU was already pretty well established, as we met one day about a week and a half before to brainstorm ideas.

The idea that we decided to build was a student study group and tutoring website and Android application. The concept is pretty simple. Students can sign up and input their classes and form study groups. If they need additional help in class then they can request tutors (who sign up for the app with a separate registration). The value we try to provide is to increase efficiency in which students can form study groups and gain access to tutors. We also strive to improve efficiency in which tutors can find work by providing them with many potential students to tutor. While building for two different platforms was probably too ambitious, we decided to go for it.

The DigitalOcean sponsors hooked us up with some free credits for their virtual private servers, which I was pumped to receive. I have used them in the past and they have always been great to work with. I set up the server, a boring but tried and true LAMP stack. I would have loved to mess around with MongoDB but we decided to stick with MySQL as everyone was familiar with it and one of our hackers had a lot of PHP experience.

About an hour later we had our cloud server setup up as we wanted and had also acquired a couple domains from Namecheap who was also sponsoring the event. They were giving away some free domains but we also decided to pony up some bucks for the .com domain. At this point we had to pick a name for the app and decided on CourseSync, a name that was available for the .com domain, although we found out later was not available for gmail (say hi at coursesyncchampions@gmail.com) or twitter (follow us @coursesyncdev).

With the server up and running, Brad, the psychology major with ambitions of med school and wizard of brainstorming got to messing around with the user interface. Joe A., the computer science major, got to building the database and handling the php. Charles, the pharmacist, was floating between looking into how to improve our UI, researching his own stuff, and checking out what going on at the hackathon. I was handling the native Android development which was being done in Eclipse.

We worked for hours and hours. Charles clocked out around 1 AM because he had work the next day. Between Brad, Joe A., and myself I think we clocked around two hours of combined sleep. Unfortunately the 24 hour time constraint meant not much sleep and not following best practices or building a sustainable product for future development, but when the time had past we were pretty happy with were we ended up. We have an almost usable Android app and website, although we have a lot of UI to improve and we have to finish connecting the two apps to the database.

The website looks like this.

CourseSync webpage
CourseSync webpage

Pretty simple and you can see we have a lot of progress to make.

The Android app looks like this.

CourseSync Android Login
CourseSync Android Login
CourseSync Android Tutor Login
CourseSync Android Tutor Login
CourseSync Android Add Study Group
CourseSync Android Add Study Group

Same deal. Very basic and a lot to improve on.

By the end of the 24 hours we were beyond exhausted, but happy with what we learned and what we built. The feedback we received seemed good and people who we talked to or got to see our demo said they saw value in the app and would love to use it once we released it. You can follow @coursesyncdev on Twitter for updates and release. The plan will be to release at Rutgers and gauge the response before potentially targeting other schools for release.

HackRU is one of the few hackathons that is open to non-students, which I think is a very important feature. I have a BS and MS in Industrial and Systems Engineering and an MBA but my passion for the last few years has been anything and everything related to programming. I’m willing to travel all over the country and the world to attend these events as they are great opportunities for learning, meeting people, working with technologies that aren’t available, and providing a good reason to be in front of a computer for 24 or more hours at a time. I’m willing to pay a non-student entry fee or do whatever else is necessary to help out to offset the additional cost that I would bring. Having a bunch of computer science students working together is great, but the hackathon experience can be greatly enhanced by people who have different backgrounds or industry experience, are entrepreneurial, or have connections to companies, financing, jobs, etc.

Different backgrounds bring different people and thinking together. How would having a marketer, pianist, chemist, or sports therapist change the idea generation process? Industry experience is provided on the tech side by some of the sponsors or organizers, but you will never know what software pharmaceutical companies need unless you have someone with a Doctor of Pharmacy who has been working with pharmaceutical software for several years like one of the members of our team. You will never know what huge opportunities are available in the Department of Defense or data architecture fields unless you have someone like myself with years of experience working in those industries. Our mix of two people with industry experience (PharmD in pharmaceutical, MBA/Engineering in DoD), and students in Psychology (med. school ambitions), and computer science can lead to both some wild ideas or practical software that is desired or needed in industry.

Trying to include entrepreneurs and people with business interests are another way to improve hackathons. I was really impressed that there were over 100 submitted projects for this HackRU. That is an incredible number and an accomplishment for a hackathon that has been growing bigger every semseter. Most of these projects will die and never be developed for in the future. And while that is a good idea for most of the hacks, some are promising for future development. I would love to see some of these hacks turn into businesses, start generating revenue, or start accumulating large user bases. This is often too much of a time/money constraint for a broke student to accommodate amongst the many classes, projects, exams, work, and debt that they have to deal with. Opening hackathons up to non-students can get entrepreneurs, funding, and people who have the time and money resources to take the project to the next level involved.

Bringing in non-students also can bring in connections to companies which can be invaluable to students. This can bring in people who have access to jobs, internships, and exclusive technologies. It also can bring experience to show students how technologies or work flows exist in industry and what to be prepared for as ideas move from one or two person teams into businesses with hundreds or thousands of employees.

I’d like to conclude by giving the biggest thank you to the organizers of HackRU, the people at Major League Hacking, and all of the help of the Rutgers employees and students who made the event possible. It was impressive seeing you all be able to handle putting on a hackathon that took over all floors of the College Avenue student center with very few hiccups. We hope to see you all again in the Spring when we do it all over again.

Updated Flashlight by Joe. No ads. No stolen data. Open source. Free. With widgets!

After initially publishing my app, I realized that it was not working for numerous phone models. So I went through and made some fixes to get it to work on those phones.

I also had a lot of people provide feedback and say that they wanted widgets. I added widgets for the home screen and lock screen.

I also updated the icon and button design because I didn’t love my original design. The app now looks like the follow.

Updated the button
Updated the button

The button design was influenced to be more in-line with toggle buttons on some Android phones.

Inspiration for the button design
Inspiration for the button design

I also messed around with some of the language localization and translated the app into 76 languages.

You can download the app at Flashlight by Joe – Google Play

You can find the source code used to make this app at Flashlight by Joe – GitHub

Although this release still has some issues, I am relatively happy with where this app is. I will consider this release to be the final release for the moment and move on to bigger and better things.

Built my first Android app. Flashlight by Joe. No ads. No stolen data. Open source. Free.

After learning some of the basics of Android I decided I wanted to go through the process of building an Android app and getting it into the app store. I’m at the point with learning programming that learning alone is no longer sufficient for my development. I have to start applying my knowledge and building some simple apps and websites. I’m not focused on making money at the moment, just applying my knowledge and gaining experience with developing.

With that motive, I had to pick something to build. I read an article about how many of the Android flashlight apps that are available secretly steal user data. Many flashlight apps also have ads on them. And yes, for all you iPhone users who have a flashlight installed with your operating system, many Android users do not have this luxury. So I figured stolen data and ads and charging people for premium versions of something that seems simple enough to implement is pretty lame. And while this app is meant to be a learning exercise for me and not intended to create a better flashlight, I figured maybe I could provide a little value to someone who downloads the app.

So I built Flashlight for Joe and put it into the Google Play store. The selling points being no ads, no stolen data, open source and free.

I wanted to build a simple looking interface, no need to complicate anything. Ended up with this design.

Keeping it simple
Keeping it simple

Nothing too complicated here. The big challenge that I realized from this project was that I would have to work with the Android camera, which is configured very differently depending upon the phone manufacturer. And given I would be supporting over 3,000 devices and 15 operating systems it was not feasible to track down all of those configurations to test. I was definitely a little bummed with how complicated it was to access such a simple functionality of the Android camera. Eventually I got it working on my Samsung Galaxy Note II and my mom’s OG droid and figured that would cover a good amount of users.

When I was happy with it I posted it to the Google Play store.

My first app
My first app

You can download the app at Flashlight by Joe – Google Play

You can find the source code used to make this app at Flashlight by Joe – GitHub