Skip to main content

Project Synopsis

Live Version: https://biochempy.bb.iastate.edu/

Project Objectives


Our client, Dr. Stone Chen, and his team of fellow researchers make use of an existing Python script that they interact with via the command line to compute the resulting data points of three modules: 

  • Actin polymerization
  • Direct binding 
  • Competition binding

The project concerns the development of a dynamic web application that facilitates the computation of actin polymerization data and results from protein-ligand binding experiments. The web app eases the process of inputting datasets and displaying (as well as customizing--markers, axis range, line graph colors, etc.) the resulting graphs can be saved and inserted into a PDF for drafting research publications. Altogether, the project serves to assist researchers and scholars in the field of biophysics and actin cytoskeleton studies.

 

Technology Stack

Web Framework Django (Python-based)
Languages
  • Python
  • Django template language
  • Javascript (AJAX)
  • HTML/CSS
Frontend Frameworks
  • JQuery
  • Plot.js
  • D3.js
Servers (for production deployment)
  • Gunicorn (WSGI)
  • Openshift
  • Docker
Database MySQL

 

Functional Requirements

(More detailed requirements in 'Features%20wanted.docx')

  • Migrate Python script for the computational logic for the three modules to the Django application
  • Develop Django templates, controllers, models
    • To render dynamic web pages that follow this user flow:
      • Log-in/Sign-up Page
        • Log-in/Sign-up to create workspace and save results (optional)
          • While logged-in to a workspace, user can create tasks
          • User can save output data sets to a task
            • Made possible after plotting the resulting graph on the 'Results' page
      • Module/Home Page
        • Select module to compute output data points
      • Input Data Sets Page
        • Input data set points
      • Results Page
        • Input module parameters and execute computation logic based on module selected
        • Plot and display output data points on a graph.
        • Customize graph
        • Save data sets to a task
        • Save graph as an svg file that can be inserted into a PDF

 

Non-Functional Requirements

  • Modular & Easy to Maintain
    • Easily integrate new features within the web app
      • Add data analysis functions as new computational modules
    • Keep web app stable and unaffected by upgrades in software/library dependencies
    • Code written by developers to develop web app should be readable and easy to understand
  • Quality Project Documentation
    • For onboarding new developers to the project
  • Consistent User Interface (UI)
    • Must be easy to use even for individuals without software development experience
  • Security
    • Provide secure user authentication services
    • Access to saved data sets in the database restricted only to admin and workspace owner
  • Concurrency
    • Enable more than 100 users to use the web app at the same time
    • Enforce efficient website traffic management