Reflecting on my experience in my software engineering class, I can confidently say that this project was one of the most challenging yet rewarding experience I have ever undertaken. We were tasked with transforming complex accounting spreadsheets into a functional web application which required not only technical skills but also a deep understanding of teamwork and problem-solving.
My primary contribution to the project was focused on data collection and storage within our MongoDB database. This involved creating and organizing data input pages for the audited balance sheet and budget P&L pages. Each page required managing multiple instances of collections to accommodate different years and specific users, ensuring the structure remained scalable and intuitive. Although one of my teammates later polished the visuals of some of the pages I initially set up, it was fulfilling to see the foundation I built come together in the final product.
Unit testing was another significant part of my responsibilities. I updated and fixed all the unit tests related to the Audited Balance data collection and the Budget P&L data, ensuring that the backend remained reliable as new features were added. The process of debugging and refining these tests gave me valuable insight into the importance of maintaining code quality and writing tests that accurately represent real-world scenarios.
Creating reusable components was another area where I made impactful contributions. I focused on displaying data in a way that made the codebase cleaner, clearer, and more concise. This work not only improved the readability of our code but also ensured that our application adhered to best practices for maintainability.
One of the more complex aspects of my work involved implementing functionality to calculate totals based on specific parts of the input data. I wrote functions to ensure these totals were updated dynamically whenever the data changed. This required close coordination between the backend and frontend to ensure accurate and seamless updates on the webpage.
Additionally, I was responsible for developing a work page that managed data for both initial years and projected years, which were calculated using intricate formulas referencing previous data. Building this feature required a deep understanding of the formulas and careful implementation to ensure accuracy. I also integrated all these pages into the navigation bar, ensuring that they were properly linked and accessible within the application.
Through this project, I gained a deeper appreciation for the difficulty of software engineering. The experience reinforced my understanding of backend development, particularly with databases and data flow, while also improving my frontend skills. Beyond technical growth, I learned how to collaborate effectively within a team, communicate ideas clearly, and adapt when challenges arose. Seeing the application come to life and knowing the role I played in its creation was quite satisfying.
This experience has not only solidified my passion for software engineering but also prepared me for future projects that demand technical expertise and teamwork. I am grateful for the opportunity to apply my skills in such a meaningful and practical way and look forward to building on this foundation in my future projects.