Requirements
EON will be a hub for epidemiologists where they can share, discuss, and create models. As such, it should meet these high level criteria:
- Maintain User Accounts:
User data must be stored securely in order to verify specific user models are
protected and they have the ability to share with who they would like.
- Custom Model Storage and Running:
The web application will store compiled code for future runs with modified
parameters that are specific to the configuration form the user filled out
when posting the model.
- Code and Project Version Control:
Users can create open and private projects. Model owners can decide who
can access and perform version control operations on their models.
- Multiple and Future Language Support:
The application must support multiple languages, since researchers may use
a variety of them. Modularity is essential for future scalability and support of
new languages. The base languages which must be supported are Python
and C.
- Modifiable Graphing Layout:
Users will be able to control how their final output appears to other users.
The owner of a model will decide what type of graph and how the data is
mapped to the graph upon model creation. Other users can then modify and
adjust the parameters of the model to see new output.
- Discussion Forum:
Registered users can discuss their models using a forum system.
Additionally, they can discuss future models or ask questions of other
epidemiologists using this forum.
EON has been developed by Pandemic Processing in close cooperation with Dr. Mihaljevic. Further requirements have been derived from these highest level requirements, which are available in the requirements document.
Solution Vision
We have been working closely with Dr. Joseph Mihaljevic throughout our
developmental process in order to develop a compelling vision for a robust and user
friendly web application which further optimizes the general workflow of an
epidemiologist and potentially saves millions of lives. EON will allow epidemiologists
io:
• Share models with the community
• Decide how their models appear to viewers
• Interact with and provide feedback on other user’s models
• Discuss future models without a fully developed model existing
• Edit and share the code used for models in a GitHub type of fashion
With universal access via any browser, a web application provides an easy and
intuitive way for these epidemiologists to connect with one another and speed up
and enhance the overall workflow. The only core requirements to use this
application is a working Internet connection and a web browser. The next few
points of discussion are roughly what we plan on providing to the client alongside
further clarification about the features and architecture of EON.
Technologies to be Used
- Django: A web framework which uses python to serve dynamically created webpages. This will enable us to easily implement the features needed for EON.
- Postgres: A database management system where EON will be able to store user models and information. The relational management system will be ideal for relating users to their models and discussions.
- Amazon EC2: A hosting platform where EON will live. The elastic nature of Amazon's Computing Cloud will allow EON to grow as needed.
- Firejail: A virtual environment mangement system which will be able to safely run user code with minimal risk to the system. Firejail will virtualize the code's enviroment to ensure safe and secure running.
Schedule