CS 3307 Software Engineering: Final Project
Overview
In collaboration with the Schulich Medical School and the Department of Computer Science at Western University, the Medical School made a list of requirements for a data importing & visualization application that the CS 3307 class would build for them. This project was completed in two stages. The CS 3307 class in the previous year was given the task to build the first version of the application and the medical school selected the best application out of all the groups. My CS 3307 class was given the task to take the best application from the previous improve and significantly improve or add new features in accordance to the requirements stated by the medical schoolThis real-world customer engagement allowed us to develop the skills needed for software development in the real world. My contributions are outlined in the "My Role" section below.
The application, built in C++ using the Qt IDE, was a desktop application for both Windows and MacOS that could import CSV files containing data on faculty activities and then could visualize that data in various ways that were important to the user. Some examples would include exploring how many hours a particular professor spends on teaching a particular lecture, or, how many publications a specific department has published in the last year.
Unfortunately, due to confidentiality, the client would not allow me to host our project code in a public GitHub repository.
The application, built in C++ using the Qt IDE, was a desktop application for both Windows and MacOS that could import CSV files containing data on faculty activities and then could visualize that data in various ways that were important to the user. Some examples would include exploring how many hours a particular professor spends on teaching a particular lecture, or, how many publications a specific department has published in the last year.
Unfortunately, due to confidentiality, the client would not allow me to host our project code in a public GitHub repository.
My Team
My team consisted of 7 randomly assigned classmates. Each of our roles are outlined below:
Ryan Divigalpitiya (me)
Project Manager / Data Visualization Lead / UI & UX Lead
Byron Roby
Data Importing Lead / Error Processing
Gustavo Andres Murcia
UI & UX / Data Vis / Error Processing
Sam Ali-Mirsalari
Data Vis / Data Persistance Lead
Raman Here
Data Persistance / Technical Writer
Wen Chang Pu
Customer Liaison / Data Persistance
Zilin Xie
Installations Lead / Technical Writer
My Role
Besides being the Project Manager for my team, I was responsible for (1) the back-end and front-end development of our data visualization features and (2) improvements to the user interface / user experience in general.
My main and most significant contribution was the new “Collaboration View” feature: We wanted to add an entirely new feature to the application that allowed the user to visualize collaborations between authors of research publications across the departments in the medical school. We ended up changing the original application interface and features so much that we ended up giving it a new name: NVIZION
Due to the policy of the course and the nature of dealing with a real-world client who owns the software, I am unable to publicly post the source code to my Github account. However, I am able to show the project report and software user guide that our group had created:
My main and most significant contribution was the new “Collaboration View” feature: We wanted to add an entirely new feature to the application that allowed the user to visualize collaborations between authors of research publications across the departments in the medical school. We ended up changing the original application interface and features so much that we ended up giving it a new name: NVIZION
Due to the policy of the course and the nature of dealing with a real-world client who owns the software, I am unable to publicly post the source code to my Github account. However, I am able to show the project report and software user guide that our group had created: