WaterFlow is a course management system built for both administrators and students. On WaterFlow, the admin could add / edit / remove courses, while the students could register / drop courses and view their weekly schedule. A demo document is available listing all features WaterFlow offers.
The entire web application was written in TypeScript, which had made it much easier for me to debug. I built the front end using Vue and Tailwind CSS and the backend using Express.js and MongoDB.
I first started my career as a software engineer in 2019 using the MERN stack (MongoDB, Express.js, React, and Node.js), and since then React has been my go-to framework / library for front end development. Although in the past I did work on a few industrial-grade Vue applications as an intern by collaborating with other senior developers, this project is really the first Vue application that I built all by myself.
Compared to React (MVC), I really love the two-way data binding mechanism in Vue (MVVM), where data in View and Model is always synchronized and I no longer need to manually update states. Based on my observations on the current job market in 2025, however, React is still the "mainstream" front end framework / library, at least in North America. As a React developer for many years, my experience with Vue through this project was quite refreshing and smoother than I thought, so I might use Vue next time when having a project idea in mind.