Ebachour Week 15

From LMU BioDB 2017
Jump to: navigation, search

Deliverables

JASPAR the Friendly Ghost Final Group Presentation | December 11, 2017
JASPAR The Friendly Ghost Group Readme | December 15, 2017
JASPAR The Friendly Ghost Group Code | December 15, 2017
JASPAR the Friendly Ghost Final Group Report | December 15, 2017

Individual Assessment and Reflection / Electronic Journal

Statement of Work

There were a number of steps that the coders team members completed throughout this assignment. Before the coders moved their focus to the bulk of the GRNsight part of this project, they were asked to gain some background knowledge on the field of web development. They read “Chapter 6: How Are Apps Made?” in Paul Ford’s What is Code? which is an article from 2015 that covers most of the bases of the software development industry. They were asked to thoroughly read this chapter and then present to their class what it entailed. This chapter was specific to all of the tools that the coders used in development, highlighting some important tools at the time. After covering all of the background knowledge, the coders then began the introduction phase to the new project. Often when being assigned to a new project, software engineers are given an introduction to the code base so that they may understand how everything functions within the project before they begin their work. This project was no different, as the professor gave a quick introduction along with a manual which illustrated the relevant folders within the code bank that would be used for this feature. After JASPAR’s fellow team members forked GRNsight, the JASPAR team start by setting up a local version of GRNsight and making sure that everything was properly functioning. After this step, they began to acquaint themselves with GRNsight and understand their job in the implementation of this new feature. At this point, as as displayed in Figure C, the coders moved from the immersion phase (green) and into the intermediate phase (yellow).

The intermediate phase was where most of the progress was made towards finishing their part of the feature. They started by creating the branch that would be solely for JASPAR team progress, as well as the new files that would contain their soon-to-be-written code. At this point the coders were all setup on the GRNsight side and were ready to move to learning about the JASPAR database and how it worked. The majority of this part was spent reading the JASPAR database documentation which clearly states how the database API calls work; specifically URL, return values, and headers. JASPAR was effective in laying out their different API calls and explaining what each call did. This made it much easier for the coders to decipher which of the calls was best for retrieving the information that they needed (JASPAR API). After studying JASPAR, and deciding which calls were to be use, the coders then moved on to implementing the first of the API calls. The first call used the inputted gene symbol to search the JASPAR database and retrieve a list of search results, from which they retrieved the matrix ID from the first result. The second call retrieves the object of gene information associated with that gene symbol. It used the matrix ID that was retrieved from the first call and returned the object with all of the information that JASPAR has for this gene, if any at all. At this point, as they were testing their code, they were getting something called an “Access-Control-Allow-Origin” error which is usually caused by an APIs lack of support for Cross-Origin Resource Sharing(CORS), but when they went and checked the websites overview page, they found that the API specifically stated that they supported CORS (API Overview). After reading this on the API Overview page of JASPAR, the coders began to believe that this error was due to miscoding of the getJasparInfo() function, but after studying the code and testing the API calls through the JASPAR interface, they realized that this issue was not due to the structure of their code, but in fact was due to JASPAR and the fact that they don’t support CORS. At this point, the JASPAR team met with the professor and decided that the best solution would be to implement a relay controller that would handle all traffic from JASPAR to GRNsight. Once the relay controller was done being integrated with the server-side of GRNsight, the API calls began working properly, which corresponded with the end of the intermediate phase of this project (Figure C).

The next phase of the project was the finishing touches (red) phase, which was where the coders spent most of their time interacting with the other teams working on this feature, to make sure that all of the pieces were working together properly (Figure C). The first step was to make sure that the JASPAR information, that the biologists on the integration team were requiring for the final page, was properly being organized and returned so that the information was useful on the page. This required taking the object returned from the second API call and properly “filing” the relevant fields into their spots within the master object. At this point, all that was left to do was to pass the information onto the page design and integration team so that they knew what to expect when calling the JASPAR function, so that they could properly put it on the page, which then marked the end of the coders work on this GRNsight feature, as displayed in Figure C.

Assessment of Project

  • Give an objective assessment of the success of your project workflow and teamwork.
    Our team worked pretty well together to finish both the paper and the powerpoint together, but this was mainly due to good leadership from Quinn. He kept us up to date and he is the only reason this assignment was even remotely tolerable.
  • What worked and what didn't work?
    Everything worked really well. We had good communication and, although arranging meetup times was difficult, we still met three times out of class to work on the presentation.
  • Evaluate your team’s portion of the GRNsight Gene Page Project and Group Report in the following areas:
    1. Content: What is the quality of the work?
      For the code specifically, everything was very well done, very clean and readable.
    2. Organization: Comment on the organization of the project and of your group's wiki pages.
      Quinn did a very good job of making our team page. I didn't really have much of a part in it but it looks really good.
    3. Completeness: Did your team achieve all of the project objectives? Why or why not?
      Yes we completed every single task. Even though they were all just very repetitive.

Reflection on the Process

  • What did you learn?
    • With your head (biological or computer science principles)
      I learned a lot from the Computer Science portions of the class because it was building on my knowledge base of frameworks and software design and engineering.
    • With your heart (personal qualities and teamwork qualities that make things work or not work)?
      I don't like biology, not because the subject isn't of interest (it is), but because of the way things are done in the Biology department. I just find it much more preferable to learn how I do in my major classes.
    • With your hands (technical skills)?
      Maybe I can type faster after all of the writing you guys made me do.


Acknowledgements

Copied the structure of the sections in my assessment and reflection from the Deliverables Page. I worked with my homework partner in class. We also met face-to-face one time outside of class. We texted outside of class and met to work on the presentation part of the assignment together.
While I worked with the people noted above, this individual journal entry was completed by me and not copied from another source.
Ebachour (talk) 13:29, 15 December 2017 (PST)

References

Navigate to the Rest of my Pages

Eddie Bachoura

Biological Databases Homepage

Assignment Pages

Journal Entries

Shared Journal Entries