Skip to content

Latest commit

 

History

History
192 lines (141 loc) · 6.09 KB

Readme.md

File metadata and controls

192 lines (141 loc) · 6.09 KB

Logo

Metabolic Query Generator

Human biology is tough 🤯- but learning about it isn't anymore 🥳

View Demo · Report Bug · Request Feature

Table of Contents

About The Project

This repository helps people who like to intensify their knowledge about the human metabolic pathways. The main idea is to encode a variety of those pathways in a graph database, which can be used to automatically generate questions which might be used for exam preparation.

DISCLAIMER: As I did not study anything biology related, I can't ensure that all information is encoded correctly. Therefore I highly encourage all attentive readers to open an issue whenever information shall be adjusted, in order to keep the knowledge as correct as possible.

Built & Hosted With

Getting Started

Prerequisites

Environment Variables

Before you can ramp up the stack, you need to export the following environment variables, which are used in the application.properties as well as the docker-compose.yml file.

Name Description Example
POSTGRES_USER Postgres Username postgres
POSTGRES_PASSWORD Password of the POSTGRES_USER postgres-is-my-favourite-db
POSTGRES_URL Spring Data URL of the Postgres jdbc:postgresql://<host>:<port>/<schema>
NEO_USER Neo4j User neo4j
NEO_PASSWORD Password of the NEO_USER neo4j-is-my-favourite-db
NEO_URI URI of the Neo4j instance bolt://<host>:<port>

Installation

  1. Export the required environment variables
  2. Ramp up the infrastructure via docker-compose up -d
  3. Launch the application via ./gradlew bootRun
  4. Open a web browser at http://localhost:8080/index.html

Usage

🤹‍♀️ Live Demo

A live demo is available here (as it is hosted on a free Heroku Dyno it might have been put to sleep automatically - give it a few seconds to reboot once you hit the page).

👾 CLI Usage

Abbreviation ➡️ Name (a2n)

Query:
curl http://localhost:8080/api/v1/questions/random?type=a2n

Result:

{
   "created" : "2020-03-15T22:39:12.489473",
   "question" : "What does 'PFK' stand for?",
   "qid" : "620ea062-4f0e-47b5-86a6-68990e9cfe67",
   "answer" : "Phosphofructokinase"
}

Name ➡️ Abbreviation (n2a)

Question:
curl http://localhost:8080/api/v1/questions/random?type=n2a

Result:

{
   "answer" : "GAP-DH",
   "question" : "What is the abbreviation for 'Glycerinaldehyd-3-phosphat-Dehydrogenase'?",
   "qid" : "bc8d2301-cacf-400b-8111-302af4273d74",
   "created" : "2020-03-15T22:40:27.306076"
}

📱 Front End Usage

🚧 under construction 🚧

Roadmap

🧬🧪Metabolic Pathways:

  • Glycolysis
  • Pentose Phosphate Pathway
  • Gluconeogenesis
  • Cori Cycle
  • ...

🤖❓Generated Question Types:

  • What does the abbreviation "FBP" stand for?
  • What is the abbreviation for Fructose bisphosphate?
  • Which enzymes are part of the glycolysis?
  • Which enzyme is responsible for the transormation from glucose to glucose-6-phosphate?
  • What is the process to transform glucose into fructose 1,6 biphosphate?
  • Which metabolic pathways consume nicotinamide adenine dinucleotide?
  • Which metabolic pathways create adenosine triphosphate?
  • What type of molecule is sucrose?
  • What reactions of the glycolysis are reversible?
  • What is the purpose of the Cori cycle?
  • ...

🛠🎛 Admin Features:

  • Question Logging
  • Answer Logging
  • Multitenancy
  • (Learn) Progress Tracker

Further pathways and/or question types can be added by raising an issue.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Joshua Görner - jgoerner - joshua.goerner[at]gmail.com

Acknowledgements