Want a newsletter that reflects more than just your undoubtedly high intellect, and impossibly refined wit? So did we.
The inspiration for this project came from a passion to develop our skillsets and expand our knowledge on high intensity, team-oriented and project-based environments. We all came in knowing little to nothing about every single tool we applied during this Hackathon, but we came in unafraid of what we knew would be hours upon hours of labour. So, why not spend the time working on something we're passionate about? A saucy fried meme here, a surprised Pikachu there and we already knew that a brilliant addition to any college students' life would be a customized, unique, and neverending* stream of some of the dankest memes around. And thus, MemeMail was born!
What Does MemeMail Do?
With MemeMail, you are able to subscribe yourself, and others, to custom made meme newsletters with a litany of options to choose from! You have choices ranging from who to send it to, what genres of memes to search for, interval at which to send the newsletter, and more! Even better, if you have the app on your phone, too, then you can change your genres and newsletter interval at any time. Unsubscribing is simple to do as well :)
How Was MemeMail Built?
This cross-platform cluster of fun was built fundamentally on an Android frontend, with postprocessing done in the Android backend, before finally being sent to our remote backend that further processed and disseminated all of the memory goodness. The app is built on Java with advanced functionality, such as Asynchronous background processing, so your app won’t slow down when you’re trying to subscribe all your friends, as well as making use of a minimalistic but functional UI/UX that scales with whatever screen size you view the app with! Data is stored between app intents, and pages are updated even after you input information elsewhere in the app. Pretty good for first time Android Developers, no? The backend is built on a localhost server that makes use of the Python Flask microframework to allow efficient and powerful web routing to interface between the Android app and the web component of the MemeMail service. The backend takes the user-provided information from the frontend and makes use of more than 3 different APIs to generate an impressive array of unique memes, pulled from genres specified by the user, which are then formatted into an email that gets sent out to the recipient with an amazing array of dank meme goodness! Wow!
Hackathons are always a challenge, no matter who you are or who you team with. One of the biggest hurdles we experienced at HackUCI was, oddly enough, using GitHub! The dear thing was mighty testy this weekend, and we had a fair amount of workflow issues and mismatched merge histories, though we always managed to sort them out eventually. Emphasis on eventually.
APIs hit us hard as well, being not only difficult to master, but requiring us to learn HTML from the very beginning to take advantage of one specifc API call. SendGrid's API was most certainly a love/hate relationship as it was extremely powerful and flexible, but equally as devilish with its learning curve, leaving all but one member of our team walking in circles.
Of course, Android was a large part of our project, and not a single one of us had a day of experience with Android Dev before, so it was a stupendous learning experience and one heck of a journey! Android has a lot of nuances that are required to operate properly, and that requires a lot of advanced coding for even simple projects, especially with a remote backend. Learning UI/UX was enjoyable, to say the least, and our team bonded wonderfully through many memes and lots of junk food that kept us afloat in an ocean of knowledge and opportunity here at HackUCI. Zot Zot Zot!
Our Pride and Joy
It was incredibly rewarding to see the incremental progress our team made. Going from absolutely zero practical knowledge in the fields we threw ourselves into, to building a functional and visually robust fullstack environment brought about a grand sense of euphoria. The Android Dev pair pulled off an amazing display of what can be done in a short 2 days, and the backend pair created a fully featured backend chock full and processing power! All this on tools we had almost no experience with. However, we are most proud of each other for truly sticking together and doing our best even when we fell into those slumps. Seeing all our work condense into a single working product, a child of our combined labor, is something irreplacable, unforgettable, and something we all have great pride in.
What Did We Learn?
We learned, well, a lot! We were a team of first timers, and we went all in. We learned of the complexity of frontend, the preciseness of backend, and the horrors of version control. We learned to work as a team and manage multiple different workflow streams with a single goal in mind. We learned how the skills we gain in class apply in a real dev environment -- and where they don't. Most importantly, we learned how much memes can motivate in dark times.
TBD Moving Forward
What's next? Of course, a better UI/UX! A more smooth, sophiscated interface is definitely in the works, with more complexity and ease of use in mind. In addition, integration with social media platforms and instant messaging through the built in share menus -- definitely useful with the current variety of social apps. We definitely want to publish it on the Google Play Store when it gets better, and we all look forward to that day :D
And of course, there will be more memes!
*not actually neverending lol