We were inspired by Google Drive. We all found that while google drive is a great service, we are all limited by the 15gb of storage that Google allows to be shared amongst drive, photos, and gmail. We decided to find a way to provide infinite storage without having to pay anyone for storage space.

What it does

MessengerBag is an application that heavily piggybacks upon Facebook's Messenger API. This API is intended to act as a 'bot' with customers or users of your facebook page. However, we took advantage of the ability to upload unlimited amounts of data to Facebook's servers. Even more, each file you upload has a unique, static URL and is stored indefinitely. This means we are able to offer a file storage service where we do not pay for a CDN.

How we built it

We built MessengerBag using ReactJS for the frontend and NodeJS for our backend. In addition to this, we utilized MongoDB for our data storage because it proved to be the best choice given our absence of circular references within our dataset. At the start, Josh broke off to handle setting up the backend and then worked on familiarizing himself with Facebook's API routes. Zack and I took to tackling the front end portion of this app, and as time moved forward we all started working more closely together and overlapping tasks. As graphics were needed, I designed them in Sketch and worked closely with Zack on user interface components. Zack worked mainly on the user experience, and designing an intuitive application. As Josh finished up with all of the backend portions, we all began working together to develop more routes and pushing our application into more use cases.

Challenges we ran into

•Facebook's Graph API •Difficult transition for those not familiar with ReactJS and less skilled in Javascript •Determining the best frameworks to use •Sleep deprivation made us somewhat on edge, and hurt development at times •Due to our aggressive testing habits, one of our bots was banned from accessing Facebook's API and we were forced to migrate all of our configurations to a new bot •We did not have enough time to implement all planned features: -Partitioned uploads of very large files -Folders -Sharing files (Facebook's Graph API was down and would not allow for this during our development time frame)

Accomplishments that we're proud of

•Very polished and user friendly application - which is important to us because we focused heavily on user experience •Wrestled Facebook's API for 36 hours (and won) •Created a fully functional product •Learned a lot about many different technologies •Met a lot of the goals we set out to accomplish (and adapted when faced with ones that we couldn't) •Privacy was a big concern of ours since we are storing large amounts of data, permanently, on Facebook's servers. Since we have a database of all the static links to these files, we felt the need to encrypt all the files in case our database ever leaked.

What we learned

•Improved our knowledge of ReactJS •Learned that we enjoy using MongoDB •Zack learned what it was like to attend his first hackathon •How to work together as a team under stressful circumstances •Roadblocks happen often, and it takes a lot to get passed them

What's next for MessengerBag

We plan on finishing up with the concepts that we were unable to complete during this hackathon, and potentially add more along the way as we think of them. After the application reaches a state we feel appropriate, we hope to release it open source and write a medium article to post on HackerNews about how we were able to exploit Facebook's API for educational purposes.

Share this project: