FilePost
FilePost is a file sharing service built to be quick and personal. Rather than taking the traditional direct link approach to file sharing, we use rooms to group users together and allow them to directly send files to anyone or everyone in the group. Room codes are selected from a choice of English words, since it's easier to tell your friend to join with room code "coffee" than it is with room code "MXBA", for instance. From the room, you can select one or many people and upload files to send to them. You'll get a small notification when you've received a file, and from there you can choose to download or ignore it. All of this is wrapped in an uncluttered user interface that makes sending and receiving files a breeze.
Inspiration
File sharing as we know it today is primarily link based, think Google Drive or Dropbox. This model is great when you want to send a presentation to many people to download on their own time, but what if your partner in the same room wants the presentation file to try something out? Or what if your team's workflow involves sending many files back and forth between each other? With a room-based approach, we can get a file from point A to point B more conveniently than we could with an unwieldy link, and introduce that aspect of temporariness that's missing from solutions like email.
How we built it
We used Python with Flask as our backend, and used a room/client model to keep track of users and files. To link the frontend with the backend, we used Jquery and Socket.io. Our app was deployed on Heroku, mostly for ease of use.
Challenges we ran into
- By far the biggest problem was managing a stable client-server connection. Eventually, after hours and hours of wrangling we somehow got Socket.io to take care of multiple clients at the same time.
- User selection was also difficult, we tried a lot of different methods of relaying which clients should receive a file, but all of them either timed out or broke the rest of our server.
- A team member's development environment also broke halfway through, fortunately we got it working again but it was a major blow to our workflow.
Accomplishments that we're proud of
- This is the first time any of our team members have made a webapp. We learned Flask, Socket.io, and Bootstrap in one weekend - and the result actually works!
- The UI is pretty nice! It's clean, colorful, uncluttered, and I think our mascot/logo looks pretty adorable :)
What we learned
- Make sure you decide early on what libraries/protocols you want to use and actually see it through! We wasted a lot of time bouncing between different ways of managing client-server connections before finally settling on gevent-socketio.
- Time management is a must for such a rapid-pace event! We spent too much time working on a room generation system which left us with little time to implement QoL features.
What's next for FilePost?
- Password-protected rooms
- More robust file uploading (batch uploading, drag-n-drop to upload, etc)
- And much more!


Log in or sign up for Devpost to join the conversation.