Lessons Learned from OpenEdu: Design, Testing, and Deadlines

This article summarizes my learnings which building OpenEdu, an open source learning platform powered by AI

·

2 min read

Embarking on a two-week journey with my side project, OpenEdu – an open-source platform designed for free learning with a personal AI tutor – has been an illuminating experience. This venture into the real-world production environment has equipped me with valuable insights, and I am eager to share the lessons I've learned.

Design Before You Write:

Recognizing the significance of design before delving into code has been a foundational lesson. Despite its seemingly basic nature, I found myself redesigning OpenEdu multiple times during development. Creating flowcharts, diagrams, and sequence charts proved instrumental in visualizing the platform's functionality, enabling better preparedness for the intricacies of design. This approach not only saved time but also resulted in a more robust and thought-out architecture.

Write Tests:

Testing emerged as a critical aspect of OpenEdu's development. Implementing comprehensive tests became a game-changer, aiding in the early detection of bugs and providing a safety net for future modifications. The confidence derived from a well-structured test suite facilitated agile development and ensured the platform's stability.

Make Deadlines and Stick to Them:

The adherence to deadlines played a pivotal role in OpenEdu's success. Establishing realistic timelines for various project phases enabled a steady pace of work and prevented procrastination. Deadlines instilled a sense of accountability, fostering focus and organization throughout the development journey.

Don't Do Anything Else:

Contrary to conventional wisdom, concentrating solely on the project without succumbing to distractions proved highly effective. By eliminating unnecessary multitasking, I maintained full dedication to OpenEdu, resulting in a more efficient and streamlined development process.

Looking Forward: REST - Jest-like Testing Library in Rust:

While acknowledging the importance of focus in the current project, I am excited to share my plans for the future. After completing the basics of OpenEdu, I'll be commencing work on REST, a Jest-like testing library written in Rust for superior speed and performance. Building on the lessons learned from OpenEdu, REST aims to bring the advantages of Jest testing to the Rust programming language, emphasizing speed and reliability for an enhanced testing experience.

Conclusion:

The OpenEdu journey has been both challenging and rewarding, providing invaluable insights into real-world production projects. From emphasizing design to the pivotal role of testing and meeting deadlines, these lessons will undoubtedly shape my future endeavors. As I set forth on the REST project, I eagerly anticipate applying these lessons and continuing to evolve in the dynamic landscape of software development.