Background

Since we cannot access the Messenger backend data, we made a simple clone version of Messenger+Instagram iOS app and add the git push function to demonstrate our idea.

Inspiration

Everyday, there are more than 10 Hackathons hold in different countries and regions in the world. As more and more people get involved in the Hackathons, problems arise at the same time. They happens when we, the hackers cannot find a teammates, when our ideas and teammates' don't come together, when our teammates don't meet our expectations, when our teammates don't really check emails or messages very often, and when we did redundant work... At this time, a new way of communication is needed -- Hacks Chat, is what we did to help solving all of the problems above.

What it does

Hack chat is basically designed for hackers to find ideal teammates more easily and to have more efficient communication within limited amount of time. With our featured "commit/push" function, hackers could track teammate's activities at anytime.

  1. Users can register/login with email, or just via Facebook account
  2. Users can edit their own profiles with the nickname, technology skills, and bio
  3. Users can view others' profiles and check their skills, current status and interested fields (this helps to find an ideal teammate)
  4. Users can post moments that are texts, pictures, or both with current location (this allows others to know better about both user's life and work )
  5. Users can check the moments posted by people nearby(this helps to see who's attending the Hackathon)
  6. Users can start real-time chatting with the one they are interested in(this saves time from waiting)
  7. Users will receive a notification automatically once their teammates committed to Github(this is the best function ever)
  8. Users can click "Push" button to notice teammates that there is a updates for things other than codes(this is the best function ever)
  9. Users have a list of recent conversations and a list of contacts

Among of above, our functions in real life would be: enabling hackers to find the teammates by skills, current status and interested fields / checking the hackers nearby during Hackathon events / sending and receiving teammate's message would be very convenient and quick / Getting or sending notification every time when pushed the work to Github.

The best thing about our project is the "Commit/Push" function. This is when users enter push command (to Github) in terminal or CMD, at the same time user's teammate would receive the message "I just updated my progress" automatically. This really helps when users forget to let teammates know their progress and prevent people doing redundant work. There is also a "Push" bottom in the chatting window. Users can click the button manually, informing their teammates that they did some updates other than codes(maybe report or something). The "Commit/Push" function we created in our project should be very useful and helpful in daily life, especially when people are working as a group. And this function, actually, even if we split it out of our project, it could still be applied to any of the current chatting app and work functionally and efficiently.

How we built it

We applied following skills in this project:

  1. Swift: The application itself was built using Swift
  2. Database: We design, store, query and send data with Firebase
  3. Facebook API: We applied this for users to register/login
  4. Map: We used Map API to get location so that users could pin with current location and see others nearby
  5. Chat: We applied chatting message synchronization and author authentication

Challenges we ran into

Since we are all college students and we didn't really know much about the skills we mentioned above. We just studied mobile app for 2 months and we basically need to learn how to apply those skills from the beginning. So the process was really tough and spent us a lot of time, but right now we almost overcame all the difficulties. This is really nice.

Accomplishments that we're proud of

The best thing about our project is the "Commit/Push" function. This is when user enter push command (to Github) in terminal or CMD, at the same time user's teammate would receive the message "I just updated my progress" automatically. This really helps when users forget to let teammates know their progress and prevent people doing redundant work. There is also a "Push" bottom in the chatting window. Users can click the button manually, informing their teammates that they did some updates other than codes(maybe report or something). The "Commit/Push" function we created in our project should be very useful and helpful in daily life, especially when people are working as a group. And this function, actually, even if we split it out of our project, it could still be applied to any of the current chatting app and work functionally and efficiently.

Even though it is such an small function, we are pretty sure, if this function is applied to Facebook's Messenger, then hackers are probably all going to use Messenger in the future because it is really practical and convenient.

What we learned

We learned how to design and connect the database(firebase). We learned how to synchronize the chatting messages so that we make sure the chat is real-time. We learned how to adapt and apply the API developed by other engineers. And the most important thing is, from thousand of times of failures and debugging, we learned how to correctly adjust our attitude and mood -- always be confident and never give up.

What's next for Hacks Chat

  1. Map view: We'll have map view when users check people nearby
  2. Camera and Filter: We'll implement the "take a photo" function and camera filters
  3. Database structure: We'll design a bigger database for group chats and moments' like and comments function
  4. Notification: We'll push notification to users when new message received for both lock screen and inside app
Share this project:

Updates