/venome

A website to store, visualize, and analyze OSU Venom Biochem Lab proteins

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

venome title

Github Actions CI tests

🟢 Live deployment: https://venome.cqls.oregonstate.edu

A website to store, visualize, and analyze venom proteins. In collaboration with the Venom Biochemistry & Molecular Biology Laboratory at Oregon State University 🦫.

demo-landing.mov

This project started as a 2023-2024 Senior Computer Science Capstone project at Oregon State University. See our OSU 2024 Engineering Capstone poster or our public landing page (video from above) for more info.

Docs

  • Dev Quick Start below to quickly run the development server locally
  • docs/ for in depth help or details
    • run.md for how to use our run.sh build script
    • overview.md for an in depth overview for developers (if you're the next group working on this, start here)
    • frontend.md for the frontend architecture and help
    • backend.md for the backend architecture and help
    • database.md for the database architecture and help
    • api.md for how to create backend endpoints and connect them to the frontend
    • auth.md for how we did authentication and limitations
    • deployment.md for how to deploy to production
    • build.md for more details on building for development and production

Dev Quick Start

This section tells you how to run the Venome website in four easy steps.

1. Install Docker

A quick way to install Docker is by installing Docker Desktop.

2. Build the Website

Execute the run.sh script in your terminal with the command

./run.sh start

3. Setup the Database

Load the existing data and database schema with

./run.sh reload_from_backup backups/v0.0.2

4. View the website

🎉🥳 You're done! Go to http://localhost:5173 to see the website live.

(optional addons)

You can also add foldseek similarity search and TM Alignment with

./run.sh add_foldseek
./run.sh add_tmalign

Local Development Environment

If you would like to have autocomplete and other nice development features, keep reading.

We use VSCode for all development and make sure to download a few extensions like

  • Ruff code formatter (for backend)
  • Prettier code formatter (for frontend)
  • Svelte (for frontend)
  • Python (for backend)

for a better experience. Then to get autocomplete with those languages, you'll need to manually install the packages that have already been installed in the docker, but locally. Otherwise your VSCode won't know how to autocomplete.

First install the Poetry Python Package Manager by doing

pip3 install poetry

Then install the packages listed under pyproject.toml by doing

poetry config virtualenvs.in-project true # required for the .venv to get created
poetry install

Then install frontend packages

cd frontend
yarn