-
Notifications
You must be signed in to change notification settings - Fork 3
Project Overview
<img src="https://github.com/superphy/version-1/blob/master/App/Pictures/superphy_logo.png" width="220", align="left">
SuperPhy is an online predictive genomics platform that will help provide important organism-specific knowledge from the growing amounts of genome data. The application will be used to analyse information generated from whole-genome sequencing, specifically information on the bacteria Escherichia coli (E. coli). This analysis may benefit health research, epidemiology, clinical medicine and ecology. The current platform is being remodelled as it has problems scaling from 2,000 to 20,000 genomes.
The platform consists of three views for interacting with the genome data. The first is a list-based or table-based view which should allow the user to dynamically add and remove columns of meta-data information to customize their view. Another component is the map-based graph which allows the user to focus on a specific geographical region and analyse meta-data relating to the selected genomes in that area. Finally, the tree-based view displays relationships between sets of selected genome data with the ability to expand or collapse additional information relating to the selected group or node.
Further information can be found on the SuperPhy paper linked here.
In order for everyone on the team to be aware of changes and updates, we sue these two online communication tools throughout the day to stay updated on what everyone is working on.
-
Slack: Slack is the primary means of communication for the SuperPhy team.
-
Asana: Asana is used for tracking tasks and project goals. It is recommended that you set weekly and daily goals to help you with tracking your progress.
Head over to the front-end and back-end sections of the wiki after reading this page.
What is MVC?
The Model-view-controller is a software development pattern used to isolate design logic from the user interface.
Why do we use MVC?
The MVC model is used in the development of this application because it has many advantages: it promotes code usability (and re-usability), and allows for division of concern into different components of the code. It also provides better readability, maintainability, and extensibility, and it allows us to change the view without touching the underlying business logic and to define several views of the same data. [1]
The division of software components are defined as follows:
-
Model: is the "brains" of the application. This is the software logic (or business rules) used to define how data is manipulated.
-
View: is the presentation layer of the application that corresponds to the user interface. It defines the things that will be displayed on the screen (e.g. text, check-boxes, color). Each time a page in the SuperPhy application is loaded (or reloaded), the view component is called and the page is rendered.
-
Controller: the controller handles communication between the users of the application and the model. Users interact with the interface produced by the view component, and when this interaction between the view and the model happens, the controller contains code to deal with the interactions. Actions such as keystrokes and mouse movements are piped into the model or view as required. [2] The controller component typically contains various functions.
The diagrams below illustrate this concept.
[3]
[4]
Everyone learns differently. You might find it helpful to brush up on your JavaScript (or CoffeeScript) skills before you proceed with implementing features in the application. However, some of your best learning will probably happen during the time you spend debugging the code, so there is great value in jumping in and seeing how things work.
Historically, most bugs are to be tracked through the issues feature in GitHub. Feel free to look through them and tackle any, and add to the list if you find any others.
[1] MVC on SAP