workdrop (6 Part Series)
This will be my official entry for the #twiliohackathon!
A web app that helps educators request files from students. Simple!
As many schools across the globe have transferred to virtual classrooms due to COVID-19, platforms for online classrooms vary greatly. From Google Classroom, to Canvas, to Blackboard, and many, many others, one thing I noticed my school lacked with their current software was a simple file request service for homework. Most assignments ended up being requested by email, which as you can image became cumbersome quickly, given that teachers' inboxes are already messy and attachment sizes can grow large, especially with images.
One teacher asked that I look into file requesting services. Obviously, Dropbox came to mind, but this would require that every student setup their own Dropbox account (which would get pricey quickly). There is a "File Request" feature embedded in Dropbox, but to find that I had to skim through articles and help pages on Dropbox to get it working. There had to be a better way for teachers on a time crunch and with low technical skill.
While again, there are many full-classroom services, most file requesting applications I found online were clunky, poorly designed, and some were downright sketchy. I thought to myself, "surely there has to be a better way to do this."
And so, as the saying goes,
If you want something done right, you gotta do it yourself.
Of course, the Twilio Hackathon only lasts a month, so many features will extend beyond April. I would love to get a MVA up by the time this hackathon concludes though!
Many teachers often need assistance with tech-related problems. Therefore, the interface design should be plain and clear to mitigate confusion. I do all my logo and interface design myself, and I love doing it, so I'm excited to tackle this problem!
Educators shouldn't get bogged down with confusing configuration. Quick setup and quick onboarding is ideal so that teachers can get their online classroom rolling as fast as possible.
If possible, I would love to keep this project 100% free, although it doesn't seem likely. Of course, it will be open source; but while Amazon S3 bucket storage is dirt cheap when you start small, it comes at a large cost as it scales.
For now, I'm keeping this a web-only application, but in the future my goal is to make this a mobile application as well, most likely using NativeScript.
The frontend is going to use Vue, mostly because it's the framework I'm most familiar with and integrates well with any stack. I'm trying to decide whether to use Gridsome or Nuxt at the moment.
The user data and other metadata will be implemented in MongoDB's serverless Stitch platform, so I don't have to make my own server and host it on Heroku or some other PaaS. I'd like to focus on the frontend for now. In addition, Stitch provides a fantastic GraphQL endpoint to query your MongoDB Atlas databases. (Also, as with Vue, I'm already familiar with Stitch.)
Since files can come in any shape or size, I'm simply going to use an Amazon S3 bucket. This is one part of the stack I'm not so familiar with, so I guess it's time to learn some AWS APIs!
The frontend will be hosted on Netlify, my static site host of choice.
Here comes the important hackathon-related part! The application will use Twilio's versatile and simple-to-use APIs for requesting files via Email and SMS. I haven't quite figured out how link generation for accessing a unique page to drop files is going to work, but if someone knows a solution let me know!
I'm super pumped about this hackathon, and I can't thank the people over at Twilio and DEV enough for putting this on! We're all in a unique and sad situation at the moment with COVID-19 going on, but I know we can all persevere through it, and I hope to see some fantastic projects come out of this hackathon that can really help people.
Level up every day