Our client, Story Squad, is an educational platform for young children. The platform uploads stories for students to read. Students then submit their own essays and pictures related to the uploaded content to develop their comprehension and creative skills. Story Squad wanted to gamify the educational experience by building a feature where they could match students with one another for the purpose of peer review, scoring and learning. The goal was to have a platform where Story Squad could keep track of the peer scores of the student content to create micro-competitions.
My lab team at Lambda built a point allocation and calculation system for this feature, created a database that logged the total scores for each match-up team, and created an algorithm to match students based on previous scores.
I was the main backend developer in a team of 5. I extracted the scoring data for each student and created an algorithm to supply student match-ups to the front-end http requests. I utilized React, TypeScript and Material-UI in Front-end development and TypeORM with Postgres on NodeJS, Docker containers in Back-end development
TypeORM was an open source tool which was not familiar to me or my teammates as we previously built back-end applications using database models with Knex query builder. I had to research and learn about these new technological tools and apply this to build new functionality within a short time frame. Our team’s approach to learn quickly was to focus on creating models in typeORM and collaborate through discussion and pair programming to help each other fill knowledge gaps of this new tool.
Another challenge was that our stakeholder had a big-picture idea of how they wanted the competitive feature to work, but did not have an existing product flow yet mapped. One of the main challenges of the project was taking the high-level requirements and figuring out the mechanics of the product interactions ourselves. I learned that the planning stage and a detailed tech spec was immensely important in order to make sure our team and the stakeholder was on the same page of what we were building.