Technology shouldn't just pave the way for Facebook likes, it should truly connect friends through real life interactions.
As college students, we live in a unique enviroment where we're surrounded by tons of our friends, yet many of us spend too much time alone with tech instead of socializing with everyone around us. Technology isn't connecting us anymore; it's separating us. It's time we took our heads out of the internet and spent some quality time with each other.
Welcome to Squad Hub.
What it does
Squad Hub connects you with your nearby friends on the fly, at any time.
You simply whip out your phone and select one of 3 statuses: Free, Sorta (free), and Busy.
- Free Blue means you're totally open and down to chill with your friends!
- Sorta Yellow means you might be up to something but you're open to ideas.
- Busy Red means, well, unfortunately you can't hang out right now.
By using location data, the main page of the app will show you who from your list of friends is nearby and what their availability is.
Perhaps you're at the dining hall and don't know who's around to eat with. Maybe you're at the library and you're feeling like studying with a friend.
Whatever you're up to, Squad Hub will quickly let you know who's nearby and down to hang out!
How I built it
The main server runs on node.js hosted by Azure, and instances of the iOS app talk to the server. Your phone reports location data as well as your status to the server, which in turn gives you the list of your friends. The app then determines which of your friends are close by, and displays their status to you if they are. All communications run on standard HTTP rest calls.
Challenges I ran into
The project required multiple services to communicate, and with only 1 person on the team I was definitely crunched for time. As a result, I often had to make decisions between best-practices and time efficiency. Making these decisions, however, was useful in learning about prioritization and working in tight situations. There were definitely areas where keeping extensibility and modularity in mind paid off, and there were also areas where I made the choice to build quickly and hack something together instead of including large libraries that were unnecessary for the scope of this weekend project.
This was also my first foray into mobile development, so learning Objective-C and the iOS frameworks was definitely a huge challenge. It was frustrating to be held back by language and library knowledge. Eventually though I realized that between learning on the internet and seeking help at the hackathon when I was really stuck, this project was well within grasp and it was satisfying to complete.
Accomplishments that I'm proud of
I didn't know a single line of Objective-C, yet this weekend I developed an entire iOS app in the language! I barely knew the language at the start of the weekend and while I'm no guru, I at least know my way around the X-code development enviroment now and I can hack together some basic Objective-C code. It was a frustrating process at times but it was a great way to dive in and learn.
There were definitely other hurdles, but I'm immensely proud of making a fully-functioning app in less than 36 hours on a tech stack I've never touched before.
What I learned
1) iOS is sometimes painful, but very cool.
2) Objective-C is as well.
3) It's okay to code solo at a hackathon! I didnt like it before but I was amazingly productive and loved the experience.
4) node js is still the best thing ever.
5) Ask for help! People are super friendly and being able to talk to iOS engineers saved me tons of headaches.
What's next for Squad Hub
My friends want it, so I'll be making it come to life! A surprisingly large number of friends over the weekend wanted to use the app in real life, and couldn't wait to see the finished product! It was really encouraging, and so I'll definitely be continuing development to make this thing ready for the App Store. The app is 100% done for what I wanted for this weekend, but there are always features, improvements, and changes to be made. I can't wait to see where it goes.