How we Made a Community & E-Learning Platform using MERN Stack

Michael
4 min readAug 16, 2021

This summer I worked with 6 friends to develop Baobab, a Community & E-learning platform for the African Impact Challenge. We chose the name Baobab as the Baobab tree is a tree indigenous to Sub-Saharan Africa that can thrive where little else can.

Baobab’s end goal is to serve young African entrepreneurs with a platform where they can connect with others, form teams, submit deliverables, and bring their ideas to life. Baobab is an all-in-one platform to help entrepreneurs build their brands, learn valuable skills, and meet new people. We implemented the ability to create posts, solve and get feedback on assignments created by mentors and admins, and create profiles.

A Discussion Board

Team Workflow

We followed Scrum and Agile methodologies while developing the project. We divided the work into 4 sprints and held sprint planning and retrospective meetings, as well as regular standups. In the sprint planning meeting we selected five user stories to implement from the product backlog. We estimated how many points each story is worth using the Poker Play strategy. Then, we divided each user story into specific backend and frontend tasks and assigned them to members on Jira. We also created a sprint schedule and estimated the critical path to complete different user stories. In the sprint retrospective meeting we reflected on our progress and refined our processes for the next sprints. During the standups we discussed our progress and any blockers that we had.

The Software

Our project uses the MERN (MongoDB, Express, React, Node) stack. We wrote the backend using Nest.js — a framework that makes use of Express internally. We also use the Next.js React frontend framework. So we could also say our project follows the MNNN stack (MongoDB, Nest.js, Next.js, Node) but MERN is a more common name.

Our architecture follows the Three Tiered Architecture. This architecture organizes the application into three layers: the presentation layer, the logic layer, and the data layer. When a user performs an action, they will interact with the…

--

--

Michael

I am currently a backend engineer. I like to research new topics and blog about them.