Andrés likes to play pool. However, he finds it sometime hard to find people to play pool with him. Thus he thought it would be nice to have an app, as he described -- "Slack-like, but limited people based on location". He would like to use the app to send a message to everyone around, so that he could find someone to play pool.

What it does

It's a messaging app. There is nothing new about it.

How we built it

After the fiasco with flask templates in the previous hackathon (HackHarvard's "automeet"), I (Duy) decides to minimise the usage of python and flask in the project. Therefore, I went with my second most proficient thing I can do, javascript!

After a night, I both learning react and javascript while trying to integrating with the python backend.

Challenges we ran into

  • Time
  • Learning ES6, react, and javascript basics while doing the project is actually pretty hard.
  • Geolocation is shake-y as best.
  • User authentication.
  • Cross-Origin policy.

Accomplishments that we're proud of

  • Sort of understand user authentication (albeit with firebase backing)
  • An appreciation of messaging app in general

Accomplishments that we're not proud of

  • A hack to get around Cross-Origin policy by injecting header into flask responses.
  • Lots of spaghetti code in the react components
  • 5-second polling. Don't let the app run in the background if you want to keep your phone's battery

What we learned

  • Lots of react, too much react
  • User authentication is more time consuming to implement than it sound.

What's next for vicinity

  • Definitely a proper geo-fencing feature that would enable you to create channel that only joinable if you are in a certain place.
  • websocket to get rid of the polling
  • Proper user authentication and management
  • Expand on the api
  • Ability to send more stuff than just text and emoji
  • Speech-to-text integration

Built With

Share this project: