Even though the world has been progressing into a new and far more advanced digital age, we feel that educational systems around the globe are lagging behind in leveraging these technologies. With that in mind, there is also a gap in tools and training needed for teachers to efficiently share knowledge with their students, and for their students to solidify their learnings.
What it does
The application allows users to create quizzes for any subject in a classic multiple choice format. The user specify what subject they would like to take a quiz for, quiz difficulty level, and question amount.
Users also have the option to add their own question, one at a time, through the add quiz option. Another option would be to enter a paragraph relating to a user's subject, and the web application would create a quiz automatically.
How we built it
UI/Frontend: Angular, Angular Material
Backend: MongoDB, Python, Flask
We split the team to work on Frontend and Backend, with one member more focused on services connecting the Frontend to the Backend.
Challenges I ran into
The biggest challenge for me was the learning curve to keep up and contribute meaningful changes in a timely manner. It took me time to learn the tools needed, but it took me an even longer time to learn how my teammates' code varies from each other's style, and how to relate it to the tutorials and demos that I was learning from. The structure of tutorials is just the beginning of what I've seen through this project.
While designing the AI Engine for the question generator I was unable to speed up the process it took for the Algorithm to generate the multiple-choice options. This was an NLP where the program has to read a 1 Gigabyte file every time to generate the word embedding. Another part was my lack of understanding of front end design, which held me back from helping my teammates from a technical point of view.
The real challenge for me was ensuring that my code was relatively clean and consistent. I'm used to building whole systems on my own, so usually I am able to put together endpoints and change them as I need to. Working with frontend and backend teams in order to bootstrap together the application was more difficult than I thought it would be!
Accomplishments that I'm proud of
I am proud that I was able to dive headfirst into this project without having prior experience in using Angular and the additional libraries. I was able to get the front-end started using the Angular CLI with help from David and online resources, and learned more about the efficiencies and uses of NoSQL databases. My biggest accomplishment would be the learned skills that I can carry with me to future projects.
While working on the backend I was able to understand my thought process and use it to my advantage. Although I have worked on the backend before, this was one of the first times I was really comfortable with designing the whole system.
I'm proud of the progress we made as a team more than anything else. We went from being very uncertain at the beginning to very in sync towards the end. As far as personal accomplishments I think learning to implement a basic auth system was one, and being able to adapt the services I wrote as the project progressed.
Within a short time frame, we were able to tackle this project and consider what would be useful for users to enhance their education. We shared knowledge, learning from each other, and became more efficient working collaboratively through GitHub, Notion, and Discord.
What I learned
I learned how much fun it is to learn about new tools and frameworks. Though, I also learned how much time it takes to learn and test each thing.
Shayan: It doesn't matter how good the idea is, the execution has to be better.
I learned more about local storage and refreshed my knowledge of Angular services, and I finally got around to learning some Angular Material.
We learned how to utilize Git more effectively, working on branches and merging improvements appropriately while mitigating and conflicts that occurred. We also learned that the functionality of analyzing a paragraph and automatically producing questions for a user may take time, but works!
What's next for Best Geese
The next step for Best Geese is to work on the functionality of progress keeping. We would like to enable our users to keep their scores and have a simple way to track their improvement. It would be even better if they are able to track their progress against their specified communities or regions. We would also like to alter the UI to be more unique and efficient in use.