With schools closed, there has never been a better time to start self-learning. However, it saddens me to see many people not taking advantage of this once-in-a-lifetime opportunity to start learning new things on their own. Even with the abundance of resources, such as a GitHub repository filled with hundreds of free programming books or the announcement of MyNelson to make their resources free for all Ontario students until June, many people simply can't find enough motivation to use these resources and learn ahead while they can.
Having witnessed the power of social media, we believe that it provides a potentially powerful influence on youth's decisions. As such, we created a social media platform that allows users to share their reading progress in the form of a competition.
What it does
TextTracker is an app that motivates youth to take advantage of the plethora of freely available resources by putting them in a competition among their friends. When you finish reading a chapter of a book, you can verify your progress by doing tests that were created by other users. You can join a competition with your account and could compete with others for real prizes, such as a paid textbook that you could win for free. These competitions are focused around a goal, for example, perhaps a new book was added to the app and needed quizzes. A competition could be hosted for users to read the book and create quizzes based on what they read to gain points, and then at the end the user who has gained the most points from contributing quizzes to this new book could win a prize.
What exactly are points? There are two "point-like" measures in our app. The first is "reputation points" (like on StackOverflow), where certain actions that contribute to the app (like creating quizzes) would increase your reputation. These points represent your involvement in the app. A minimum amount of reputation is needed to be able to perform actions like adding books, or downvoting quiz questions, or hosting competitions. The other points you gain are "knowledge points" from completing quizzes and completing books. These points represent the amount of knowledge you've gained from these resources, and are used in leaderboards and for rankings.
The Feed Screen in our app shows all the recent activities from the people you've followed, whether they just completed a chapter of a book or if they've picked up a new book to read. In the rankings page, you can see how you compare among others in a local leaderboard, and we decided to make it similar to how Duolingo does it, where if you gain the most points among everybody in the leaderboard, you move up a league, but if you fail to gain enough points, you move down a league. This way, we ensure that the learning process is continuous. In our current app, the user is currently participating in a specialized competition with a real prize.
The Books screen is where users can find the inventory of books stored in our app. As well, each book is also associated with a list of quizzes for readers to verify their knowledge and gain knowledge points. Here, users can either add a new book if they don't see their book listed, or they could add a new quiz for others to do, while both gaining reputation points and knowledge points. This is especially beneficial since creating a quiz forces you to come up with questions and answers that reinforce your knowledge, and you're also kept accountable by the community to make your questions somewhat difficult (but not overlay difficult) and relevant to what the text taught. The Discover Screen is where you can meet other users that are reading the same books as you are. Here, you can connect with others and keep each other motivated by sharing your progress with one another (displayed on the feed page).
How we built it + Challenges + Accomplishments
We built the app using Flutter and extensively used many packages that helped us create an appealing UI. As it was the first time using Flutter for both of us, we struggled with coding up some layouts we had in mind, especially when we weren't as used to the same patterns as we were with React Native. We're proud of creating an app with perhaps the best UI out of all the apps we've created. We've learned that Flutter is a powerful tool, and we definitely hope to use it for future hackathons.
What's next for TextTracker
Due to the time constraint and being novices at Flutter, we weren't able to implement as many features as we wanted. Currently, while TextTracker may have good UI, there's a lot of missing functionality that we have yet to implement but had hoped to, such as a page to create contests and for a place for users to share their thoughts/opinions about a certain book.