Object Oriented Software Engineering Course - Group 8


Bumjin Kim (Backend, Frontend)

Jeff Burka (Frontend)

Alex Monroe (Frontend)

Emily Wagglestone (Backend)


Title : OliGUI


Architecture

The project will use ruby programming language and ruby on rails 4.1.6 which is built on top of ruby 2.1. The backend will be handled by the ruby on rails framework while the frontend contains html, javascript langauges. The frontend frameworks include jQuery. We will use hosting service to deploy the website. The ruby on rails includes major components. One of which is Action Pack which contains action controller, action dispatch, and action read.

Resources

We will be using ruby on rails framework as a foundation for this project. The packages that might be used are Easy_downloader 0.1.1 and salted_login_generator packages. The salted_login_generator package generates the login system of the ruby on rails website. We will use Ruby on Rails API for ActionModel, ActionView and ActionController. For action controller, ActionController:Cookies to store information in the cookie. For action view, ActionView::Renderer to render the web.

Vision Statement

Our project will be a web app that will allow users to do drag-and-drop DNA design. We will pull from an existing bioparts database as the supply for BioBricks (DNA building blocks with specific functions). Users will be able to drag and drop BioBricks together to create a large DNA sequence. The supply will be indexed by BioBrick ID number, which the user will be able to use in order to find the pieces they are looking for. In addition, BioBricks are sorted into different categories (promoter, encoder, terminator, etc.) in order to further facilitate search. Once the user finishes building the sequence, a simple parser will run to make sure the strand makes sense. For example, the parser will notify the user when the number of promoter regions does not match the number of terminator sequences. After the simple parsing, our program will be able to perform simple codon optimization based on the organism that the strand is targeted for. We will either use a simple optimization algorithm that we build from scratch or push the sequence to an external codon optimizer. Once the sequence is fully constructed, our website will allow users to save and download the final sequence, save their sequence to a library associated with their account, and send their sequence out to oligo manufacturing companies for processing. In order to save the sequence to an account, we will need to allow users to create an account with the website that will be kept on the server. The backend of the website will use Rails, while the front end user interface will be written in Javascript.

Features List

Users must be able to create an account on the website Users must be able to search for and find BioBricks in our database Users must be able to search by BioBrick ID Users must be able to browse BioBricks by category Users must be able to drag-and-drop BioBricks from the database supply into a design window The design window must stitch together the pieces the user has dropped in The website must be able to compile the sequence of BioBricks into a DNA sequence The website must be able to notify the user of potential problems in the DNA sequence during the compilation The user must be able to specify an organism that the website will codon optimize for when converting the BioBricks to a DNA sequence The user must be able to design specific oligos for their own use Users must be able to download the final sequence and/or oligo to their local machines Users must be able to share their sequence with other researchers/collaborators Users must be able to email their sequences/oligos to other people Users must be able to share their sequences/oligos with other accounts Users must be able to send out the sequence to an oligo manufacturing company by email A User with an account must be able to manage a library of saved custom sequences A User with an account must be able to save a sequence to that account’s library A User with an account must be able to load a saved sequence into the design window

Use Cases

Version 1

Version 1

Version 1