Showing posts from October, 2017

Week 8: Getting Back to the Project

My team has split up into two teams: the fronted and the backend.

Backend On the backend, I was in charge of refactoring our code to enable easy addition of new tools. After hours of research, I decided to refactor each "tool" to a Blueprint. In other words, every part of a project will be in a specific directory with a templates folder containing necessary html for webpages that the Blueprint is responsible for.
The directory structure is as such:
rankitbuildtemplatesrank_scriptdatasetstemplatesexploretemplateslineuphometemplatesstatictemplates  The current work being done on the backend is establishing a working functionality for the build tool.   This includes accessing datasets, calling the pairwise comparison script, and having all necessary views. 
Frontend  The whole group got together and revised our mockups for the project. 

The landing page will now be merged with the About page and the Meet the Team page. The navigation bar will simply be a hook to the appropriate …

Week 7: Fall Break

Because of the fall break last week, things have been quiet. I did slight research into programming in Python, best practices, and into the opportunities given by the language.
For this week, I have plans to refactor the code into a Blueprint model and create different tasks to assign to my members for the quarter. 

Week 6: Gathering Old Resources

The last week before the end of the quarter meant that we had to wrap up everything that we have worked on so far (by starting to draft our paper) and plan for the next quarter.
UML Diagram for RANKit

The project follows the Model, View, and Controller pattern. The View portion of the tool consists of the JavaScript frontend, responsible for visualizing rankings and incorporating user defined preferences, such as pairwise comparisons for the Build Tool. The Controller, written in Python, enables communication between the frontend and the backend. It is responsible for allowing users to access all tools, such as informing the Build component of new pairwise rankings computed by the user.

RankToolFactory establishes a level of abstraction between each tool, such that the addition of a new tool can be completed without changing the existing architecture. Therefore, the job of the RankToolFactory is to return the appropriate tool that the user requests, giving responsibility of the RankToo…

Week 5: Blockers

According to the Trello tasks, my team split into two groups: the landing page group and the Lineup group.  Landing Page In better integrating our python server with our landing page, we established the connection between landing page and server via XML HTTP Request and Response. This functionality would allow for user picked dataset on the landing page to be processed by the server to be later displayed in Lineup. 
Furthermore, we universalized font, and established a color scheme to follow. Lineup  My task was to work on implementing the other end of the functionality described in the Landing Page section: given a dataset to display, have Lineup display it.
In attempting to establish a two way connection between Lineup and our Server, we decided to call Lineup through our Server. However, because Lineup is a TypeScript tool, and our server is written in Python, there were some changes to the imports within HTML files of the TypeScript files that needed to be done. In cleaning up imp…

Week 4: Design, Design, Design!

The week involved two things: on redesigning of the landing page and on researching onMyRanker.
Landing Page After taking advice from our faculty advisor on the landing page, we aimed to improve the UI. Needing more interaction and less words, we stripped the landing page from any words and moved that information into the About page. Furthermore, we added animation to our website, and polished the look of our buttons. The end product looks like this:

Server We picked to write our server in Python. For that, we refactored the structure of our project and some landing page code to have it function properly with our server. We made sure that, upon startup of our server, in a separate thread, Lineup would start up as well, such that, whenever you click a button called "LineUp" on the landing page, it would redirect you to Lineup. 
Naming We chose to rename our tool:
- RankSmith is now RANKit, to better reflect the intent of the project (a kit for ranking)
To connect our tools cl…