We've spent the past two hours exporting our video and received permission to leave a Zoom Link. Judges, please just hop on when you're taking a look at this (someone will be on stand by) and we'll play our video via screen share without communicating with you. Sorry about this, and we appreciate you working with us to see our project come to life :) https://ubc.zoom.us/j/64157121331?pwd=aSt0Sld0cmZ1N2pqOVY3dGlvL200QT09
Have you ever just sat there and thought about wanting to learn a totally new skill – be it juggling, knife-throwing, or juggling with knives? Or perhaps something a little bit more tame like learning how to knit, needle work, or of course – what about learning a new programming language or development tool?
We were talking about what we were up to; chatting nonsensically. We knew that we wanted to create either a mobile or web application. Martin mentioned that it’d be fun to learn knife juggling, and from that, we brainstormed an application that would incentivize learning new things. When thinking about the best way to incentivize users, we thought of gamifying learning. As such, we wanted to create an application – SkillStreak – that would gamify learning something new every day.
The desire to learn something new is innate – at the start of the pandemic, massive open online classes (MOOCs) experienced exponential growth: Coursera’s enrollments went up by over 600% compared to the same period last year. But while we all might pick up a hobby interest, or say that we’ll commit ourselves to something new, how many of us actually follow through? There’s a reason why 80% of New Year's Resolutions fail, and that the average completion rate of a MOOC is less than 10%. We simply start to lose motivation. And that’s where SkillStreak comes in!
What it does
SkillStreak is an iOS application that gamifies learning by encouraging users to maintain their streak of learning a new skill everyday. It incorporates a social aspect to encourage learning new tasks with your peers, and users are able to add each other as friends in-app! Users document their skill training journey by uploading a short visual snippet, be it a photo or a video, of what they worked on that day. Furthermore, users are share what they're working on, and create their own tutorials for others to learn!
How we built it
Design: We started out by planning out the design of the application: given that this was a remote hackathon, we used AWWApp and Aggie.io to share a drawing application and plan out the designs together. It was a bit sketchy (hahaha), but it worked.
Front-end: Given that this is an iOS application, our project was built using Swift for the front-end. The application was built natively using Swift 5.3 in Xcode 12.3 with SwiftUI, UIKit, Model View Viewmodel (MVVM) and Combine.
Back-end: We used a Node Express backend to set up the REST endpoints that would allow the front-end to communicate with the backend to retrieve data. We used Firebase as our database, which is where we ended up making use of Google Cloud.
Challenges we ran into
Ultimately, we found that our biggest challenge was creating a holistic app design. Most of us weren't iOS users, and so this challenged us to learn more about a different operating system. Additionally, we wanted to incorporate a social aspect, because learning is more fun with friends (that's why we never pay attention in in-person lectures, right?) and so coming up with the social elements that wouldn't take away from the purpose of the app – learning something new every day – was a bit difficult. That's why we opted for claps instead of likes or loves, and why users add each other instead of following each other one-way. We were a bit ambitious with what we wanted the application to do for the demo, but we're pleased with how it pulled off!
Accomplishments that I'm proud of
We're really happy with how everything turned out, especially in regard to the design. Designing an application from scratch is really difficult, especially since none of us really had a UI/UX design background. Ultimately, the accomplishment we're proudest of was that we were able to pull off a functioning social application in under 24 hours. That wasn't easy, and I would kill for this type of productivity and efficiency during the school year...
What I learned
Did you know that setting up Xcode and Git can take up to six hours? Yeah, we didn’t either. Lesson learned: set up your development environment before the event, or you’ll end up like Martin: unable to do any coding for the first six hours of the event (if you don’t believe us, check our Git commit history…...) Also, it’s a bit hard to test iOS development when only one out of four members have an iPhone! Something about teamwork and collaboration, every step of the way…
What's next for SkillStreak
We would love to be able to push a more polished version of this application out onto the market one day! In the future, somethings that we would add and change are:
- Refining the design of the application: a more cohesive colour scheme/finer details on the design and logo
- Integration with Single Sign-On (SSO) or through an existing account: for instance, logging in with a Facebook or Google account
- Integration with other social media such as Facebook and Twitter to share content.
- Analytics and statistics for your skill progress, streaks, and how you stack up against your network of friends. This is something we were excited about but didn’t have the time to commit to.
- More skills, with a tagging system and dynamically generated categories.
- A sophisticated algorithm that generates content, or suggested skills, based on your previous history/perceived interests, and trending data.
- More comprehensive “karma” or points accumulation to add to the gamified experience beyond just Streaks.
- More operating system support: Android, iPadOS, and web versions of SkillStreak.
Obviously, we wouldn’t deploy this without some type of business model for short- and long-term profitability. In terms of monetization, we would have a few key methods:
- Ads, just like all other social media applications! This would include sponsored posts and integrated ads within stories and in-between posts.
- Sponsored skills. This would allow skills to be used for small businesses to gain further exposure. For instance, if a coding tutor wanted to sponsor a programming lesson, then learners could be eligible for discounted further, more comprehensive lessons.
- In-app currency achieved through in-app purchases, but also through karma streaks. This currency could be used to “unlock” more specialized or advanced tutorials, and encourages further gamification of learning skills by earning karma to continue learning. Perhaps also draw inspiration from reddit and incorporate an awarding system for exceptional tutorials.
Of course, in any case, we would experiment with our profitability models. This would be done primarily with:
- A lot of dogfooding and alpha testing. If we don’t know our software and wouldn’t use it, how could we convince others to use it?
- Beta testing to see any other major bugs and issues with volume or security, etc.
- A/B testing to compare monetization models and see which ones are the most effective.