Introduction
As a member of the development team, I led a project aimed at simplifying the student experience at Simon Fraser University. The mission was to create a unified platform, offering students an efficient way to seek answers to their academic and campus life queries ✨. Taking charge of bothfrontendandproject management, my responsibilities were central to the success.
This project stood out for its use of a microservice architecture, which encompassed over ten microservices. These components worked together to provide an intuitive, responsive, and personalized platform tailored to the needs of Simon Fraser University students.
Understanding microservices
Microservices are a software architectural approach that breaks down complex applications into smaller, independent services, each handling specific functions.This decomposition promotes scalability, flexibility, and easier maintenance.In this context, the outbox pattern plays a crucial role.
The Outbox Pattern is a design pattern used in microservices to manage events and ensure data consistency. It involves two main components:
Project Overview
Unifyi aimed to merge student life and academics into one platform, allowing students to discuss various topics, including courses, exams, and general matters. Its core feature was a Question and Answer (QA) system, enabling information exchange through questions and answers. Additionally, students could create specific discussion topics, with an integrated chat connecting all university courses.
Architecture
Technology Stack
Development Process
Our development process thrived within an Agile environmention , marked byWeekly sprints that ensured a steady pace of work.
I efficiently managed tasks and progress through Notion, team's project management tool of choice. Daily Scrum meetings kept the team synchronized, while a well-maintained backlog allowed for the prioritization of tasks and features.
Embracing an iterative approach, we regularly delivered working features, actively sought feedback, and conducted thorough testing, all of which contributed to the project's quality and adaptability. At the end of each sprint, deployed features underwent stakeholder and user review, shaping our ongoing development efforts.
Key Features
Conclusion
In summary, the website garnered 1000+ users after a year of development. Team collaboration was a crucial part of our journey, as we focused on delivering a production-ready product that prioritizes scalability and reliability.
This journey taught me valuable lessons, emphasizing the importance of testing ideas early, rapid deployment, user feedback loop, and holistic product development . It underscored the significance of not only the technology stack but also aspects like UI/UX design, metrics, and a deep understanding of the problems we aim to solve. These lessons have become guiding principles in my approach to future projects, ensuring a more comprehensive and user-centric development process.