iZumator is a platform for online education where users can create and pass courses.
Any student can become a mentor and teach others. iZum focuses on the result that students get, not on the process of studying — skills that students learn from courses can be put into practice right away.
The client developed a thorough product strategy. The platform is planned to go through 3 stages of development:
After the first development iteration, the platform can be used
only by iZum’s employees, it works as a tool for onboarding newcomers.
The client’s next step is to break into the market of online education
and compete with other platforms — Coursera, Skillbox, and Udemy.
Users on the platform have 5 roles — student, mentor, assistant, admin, and supervisor. Our major challenge was the hierarchy of roles: admin has all rights, mentor has rights of students, and so on — every bigger role includes the rights of the smallerones. Users can switch between the roles in account settings.
We dedicated a lot of time to wireframing: because of the role hierarchy, the platform’s functionality was supposed to encircle. To come up with the future product’s style, we created a mood board: gathered colors, fonts, references. After that, started working on the concept.
The client wanted us to get inspiration from Airbnb design. We chose a warm color scheme — in order to resonate with the reference but not duplicate it. The accent color is orange, elements are illuminated when active.
We used Nest.js for the backend, Redux and Next.js for the frontend. Next is good for services that need search engine indexing. Although at the first stage the platform was closed from the general public and didn’t need indexing, we knew that the project would soon become public — and chose instruments considering the client’s plans.
Initially, we chose the REST architectural style, because the relationshipsbetween entities were simple. But because of the role hierarchy,the relationships become more complex — there were too many requests,we needed to create a separate endpoint for almost every page. With sucha role system it would be better to use GraphQL since it allows you to getall data the app needs with a single request.
The platform has a built-in forum and a support chat for closecommunication between users. When a student uploads homework, the app automatically creates a forum thread: users can ask questions, discuss problems, and rate tasks.
Every user has a calendar — mentors can add eventsfor course participants. For example, set a deadlinefor completing homework. Students can monitortheir events in the iZumator calendar or importthe data to Google Calendar.
The client wanted us to add the ability for admin to look through other users’ calendars and see their events. It would be difficult to implementsuch a feature and it wasn’t in the initial project scope, so we didn’t include it in the MVP.
Vast project — many roles
and relationships between users
Tight deadline — the client wanted us to finish
the project by the end of year 2020
COVID-19 — in the middle of the project
development team with the manager caught covid