Bi-Weekly Report 5
December 11, 2015
Meeting 12
Date 1/12/2015 Time 14-15
This was a meeting with our client. During this meeting, we reported our progress on the development of the system architecture. This included our first build of the skeleton infrastructure, which contained all the components we intend to use for the system. This skeleton infrastructure was also pushed to our GitHub repository, as per our client requested in the last meeting.
We also discussed our research and finding of the graphing library we are going to use. We decided to use Plotly.js because it is relatively simple to use and is most importantly, open-source. Our client was overall satisfied with the progress of the project and we planned out tasks for the next sprint, these included:
- Implement feature: allow user to specify variable names and types
- Create initial UI for testing
- Explore and select UI framework
- Project Video
- Map out the Python modules for the backend
Meeting 13
Date 3/12/2015 Time 11-13
This meeting was carried out during a lab session. During this lab session, we focused on mapping out the python modules for the different back-end features. We created multiple py files to separate modules that have different functionalities (eg. cleaning data, loading data etc.). For each py file, we created skeleton code which included the name of the function, the name of parameters the function takes, and the value/object the function returns. By planning and mapping out these modules/functions now, we aim to make it easier for us to develop these module later on in the project. Additionally, by mapping out the modules, we were able to identify some potential problems and inconsistencies with the structure and architecture of the system. For example, for the clustering feature, to avoid repeatedly evaluating the fingerprint of the values in a column, a data-frame containing the information on the clusters should be stored, which we did not consider when designing the architecture.
Meeting 14
Date 8/12/2015 Time 14-15
This was a meeting with our client. During this meeting, we reported to our client on our progress on planning and implementing the back-end features. We showed them the UI for testing which include some functionality such as loading a CSV dataset and generating a graph using Plotly.js. Our client was, in general, happy with the progress we have made.
As this is the last time us and our client will meet before January. We decided to map out the tasks we want to complete before and during next next term. This involved adding issues to our backlog of our JIRA board. Most of these issues are focused on implementing the must have and should have features of our MoSCoW requirements specification.
We also planned out some “next steps” for the project. This was done so we have a loose idea of what’s to come after we implemented most of the features as stated in the requirements. These included:
- Test the system with live data and real users
- Implement the could have and would have features
- Get product market fit using the Sean Ellis test
- Look into automated data analysis
- Connect to Seldon ML models and output prediction scores for analytical purposes
- Look into suggesting models and algorithm configuration based on data analysis
Bandi Enkh-Amgalan
During the last two weeks, we mainly focused on completing all the tasks due for grading at the end of this week, which entailed creating a video giving an overview of our project and updating the website with all of the required documentation. My contributions to the video were the architecture research, design and prototype parts in addition to the plan for the next term. For the website, I wrote the sections on the planned testing tools and methodologies and the planned build and deployment process. Besides documentation and fulfilling the module requirements, we also made some progress on developing the actual application. I finished planning out the Python data cleaning package by writing function stubs. I also created a testing/development user interface in the AngularJS front-end with a basic layout modeling our UI prototype. Finally, I performed some code refactoring on the front-end and back-end, to allow for easier integration of new features as we develop them in the future.
Gordon Cheng
During the last two weeks, I focused on the development of the user interface. The work we have done so far for the user interface had mainly been focused on the navigation and layout, with minimal effort put on the visual and aesthetic aspect. After doing some research on UI design, I have found that the Material Design language by Google is the most suitable visual language for our system. This is because there are extensive guidelines and documentations available online so implementing it will be a relatively easy. Additionally, there are many UI frameworks and libraries that are built using the Material Design specification, meaning that we can easily choose the one that works best with our system architecture. As we decided on using AngularJS as the front-end web-app framework, it was almost natural that the Angular Material library is the best for our system, as it is make use of AngularJS features and is maintained by Google.
Shivam Dhall
Over the course of the last two weeks, my teammates and I made significant progress in terms of completing all of our technical research as well as finalising the architecture of our system. I was tasked with carrying out research on potential graphing libraries we could use within our system, after researching on both plotly.js as well as d3.js, I concluded that plotly would be better suited for our use as it supports multiple graph types which are interactive. I was also tasked with making use cases for our system based on our MoSCoW requirements, these use cases took into consideration both simple tasks such as loading a csv file, as well as more complex tasks such as identifying and replacing all missing values. Finally my teammates and I spent most of our final week ensuring that our website is up to date and includes the content that is specified on the website checklist. We also spent a lot of time on creating scripts, recording demos, and creating presentations which we used in our final video.