As current high school students struggling to study with the pandemic, we decided to create an app that will help us learn. We've experienced firsthand how virtual learning, it has made it easier for students to procrastinate and lose track of their progress in classes, resulting in last-minute studying and gaps in understanding. Enabling students to incrementally keep track of their progress in any subject they want to can prevent stress and procrastination, in addition to ensuring that there are no gaps in the student's knowledge.
What it does
To use Modulate, users create an account which will be stored in Firebase. After logging in, users can either create their own personalized "track," representing a single learning trajectory, or they can visit the Explore tab, where they can find and learn from community-made tracks. Each track is broken down into modules, small subdivisions of each topic that students want to learn about. Modules consist of study notes, general information, and learning resources for relevant concepts. Once the user has finished a module, it's marked as completed, and they move on to the next one! Each Module and Track is fully customizable, with personalized colors, titles, and information.
How We built it
To build Modulate, we used Flutter for the front-end and Firebase for authentication and database. We chose to use Flutter because it is a fast cross-platform development kit that would easily allow us to upload our apps to the Android Play Store and iOS App Store, and we decided to use Firebase because of how smoothly it integrates with Flutter projects. Firebase also provides lots of features that would help with the expansion of the app.
Challenges We ran into
Some of the challenges that we ran into was connecting our Flutter UI to Firebase. This originally took some time because we had to download specific JSON files and add configuration keys to make sure that our Flutter app would communicate with Firebase. Once we got Flutter to communicate it took a while to understand the Cloud Firestore No-SQL database structure and how to add and query data.
Accomplishments that we are proud of
We're proud to be able to create a running version of our app with a wide variety of features, and that we were able to set up a backend database to store user information so that that data can be stored even then the app is closed.
What We learned
From this project we learned a lot about Flutter and how it works behind the scenes. We learned about state management and also how to connect a UI to a backend database that stores user information.
What's next for Modulate
In the future, we'd love to add some more features to make the UX better, such as editable colors, progress bars, and a well-integrated, data-driven Explore page. We'd also make sure to polish backend so that it works securely. We would then try and publish the app to the Play Store.