rescuerepo

Project for the Bio X AI Hackathon. All about resurrecting old abandonware repos, and reducing the effort to get them up and running again.

https://github.com/matthew-mcateer/rescuerepo

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

anthropic anthropic-claude bioinformatics biology celery celery-redis chatgpt codespace codespace-template codespaces github nextjs openai python supabase vercel
Last synced: 6 months ago · JSON representation

Repository

Project for the Bio X AI Hackathon. All about resurrecting old abandonware repos, and reducing the effort to get them up and running again.

Basic Info
Statistics
  • Stars: 12
  • Watchers: 5
  • Forks: 54
  • Open Issues: 7
  • Releases: 0
Topics
anthropic anthropic-claude bioinformatics biology celery celery-redis chatgpt codespace codespace-template codespaces github nextjs openai python supabase vercel
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Contributors Forks Stargazers Issues Apache License LinkedIn Maintainability Rating Technical Debt Lines of Code Code Smells Security Rating Bugs Vulnerabilities Duplicated Lines (%) Reliability Rating


hackathon-cover

RescueRepo

Project originally built for the Bio X AI Hackathon. All about resurrecting old abandonware repos, and reducing the effort to get them up and running again.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

A project built for resurrecting the countless abandonware repos littering GitHub. The goal is to make it easier to turn any repo, no matter how old, and turn it into a working GitHub Codespace.

https://github.com/matthew-mcateer/rescuerepo/assets/16986576/a480ab0e-aca1-4dcf-b7e0-7803a1931b0f

(back to top)

Built With

architecture-image

(back to top)

Getting Started

For running this project locally, you can skip ahead to the Usage section.

To get a local copy up and running follow these simple steps:

Prerequisites

Here is a list of prerequisites you need to install before you can start using the examples in this repo.

  • python 3.9 or later
  • node 14.17.0 or later
  • NPX 7.19.1 or later

Installation

  1. First, Fork/Clone the repository.

Using HTTPS:

bash git clone https://github.com/matthew-mcateer/rescuerepo.git

or using the GitHub CLI:

bash gh repo clone matthew-mcateer/rescuerepo

  1. Obtain the following API keys, and put them in a .env file in the api directory of the project. You can use the api/.env.example file as a template.

your SUPABASE_URL and SUPABASE_ANON_KEYk from your Supabase account

bash export SUPABASE_URL=<your-supabase-url> export SUPABASE_ANON_KEY=<your-supabase-anon-key>

your OpenAI API key

bash export OPENAI_API_KEY=<your-api-key>

your Anthropic API key

bash export ANTHROPIC_API_KEY=<your-api-key>

Your GitHub access token (classic) (make sure it has the codespaceand repo scopes):

bash export GH_ACCESS_TOKEN=<your-api-key>

Getting your properly-scoped GitHub Access token (click to expand)

  • First, log in to your GitHub account.
  • Click on your profile photo in the upper right corner of any page.
  • From the dropdown menu, select "Settings."
  • On the settings page, find "Developer settings" at the bottom of the left-hand side menu and click it.
  • Now you should see "Personal access tokens" on the left-hand side menu, click it (click the "classic" tokens).
  • Click "Generate new token" on the Personal access tokens page.
  • In the "Note" field, enter a descriptive name for this token that will help you recognize its purpose later (e.g., "Token for forking and Codespaces").
  • To choose the required permissions, you'll need to select the following scopes:

    • For forking repositories, you will need the "repo" scope which includes 'public_repo' and others.
    • To create GitHub Codespaces, you will need the 'codespaces' scope which will allow "full access to managing user codespaces." Therefore, you should select both 'repo' and 'codespaces'.
  • Scroll down and click "Generate token" at the bottom of the page.

  • After you click the "Generate token" button, GitHub will display your new personal access token. Make sure you copy this token value and store it in a secure location. GitHub will not show the token to you again.

Your CELERY_BROKER_URL:

bash export CELERY_BROKER_URL=<your-api-key>

Getting your CELERYBROKERURL (click to expand)

If you're using RabbitMQ, you can use export CELERY_BROKER_URL=pyamqp://guest@localhost//. The demo version of this project is using a CloudAMQP instance from Heroku (the free "Little Lemur" tier).

Or if you're using redis, you can use docker run -d -p 6379:6379 redis && export CELERY_BROKER_URL=redis://localhost:6379/0.

Your POSTMARK_API_KEY:

bash export POSTMARK_API_KEY=<your-api-key>

Getting your POSTMARKAPIKEY (click to expand)

Set up a https://postmarkapp.com/ account, and see the developer documentation.

  1. Once you've added your API keys to the file api/.env, you can set the environment variable with the following command:

bash $ export $(cat api/.env | xargs)

  1. Install the python dependencies.

bash $ python3.9 -m venv env $ source env/bin/activate (env)$ pip install -r requirements.txt

  1. Make sure that you have npx installed, and install the frontend dependencies:

bash $ npm install -g npx $ npm install

  1. (OPTIONAL): Start up the Celery worker in one terminal window (separate from the one in the next step):

bash $ (env)$ celery --app api.tasks worker --loglevel INFO

  1. In a terminal window, run the NextJS front-end (which concurrently starts up the server-side FastAPI backend):

bash $ npm run dev 7. Navigate to http://localhost:3000 to see the app running in your browser.

frontend-view

  1. (OPTIONAL): navigate to http://localhost:8000/api/docs to see the FastAPI docs.

backend-view

(back to top)

Usage

In order to start this project locally, you'll need to start the frontend and then the backend.

First, follow the installation instructions above.

Navigate to http://localhost:3000 to see the app running in your browser.

Sign into GitHub, after which you'll be greeted with the below page.

initial-page

You can enter in a GitHub repo URL of your choice. At the moment the default is https://github.com/lucidrains/progen.

Include with this information your GitHub Access token (make sure it has the repos and codespaces scopes enabled), as well as your email.

This will trigger the creation of the GitHub codespace.

If you navigate to the GitHub Codespaces Dashboard, you should see it being created (will resemble the below).

final-page

And if you load the codespace, you should be able to access it through VSCode or in the browser

in-the-codespace-page

Roadmap

The scope of this project is admittedly quite large, so we've broken it down into a few phases:

  • ✅ Embedding Map of Bioinformatics tools ( view here, see the notebook for its creation here )
  • ✅ Setting up a workflow for generating dev environments from an arbitrary repo
    • ✅ Creating a fork with a dockerfile, devcontainer.json, and anything else needed for a GitHub Codespace
    • ✅ Automatically Generated Dev Environments using GPT-4 (or Claude 100k)
    • 🚧 Get running environments built without error >50% of the time
  • ✅ Automatically Refactoring Code using GPT-4 (or Claude 100k)
  • 🚧 Translating languages using GPT-4 (or Claude 100k)
    • ✅ Nextflow-to-Flyte Translaton
    • 🚧 Nextflow-to-Snakemake Translaton
    • 🚧 Nextflow-to-Redun Translaton
    • 🚧 Nextflow-to-CWL Translaton
    • 🚧 MATLAB-to-Python Translaton
  • 🚧 Improving the UI/UX of the above.

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  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

(back to top)

License

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

(back to top)

Contact

Matthew Mcateer (Author) - @MatthewMcAteer0 - bioml@5cubelabs.us

Project Link: https://github.com/matthew-mcateer/rescuerepo

(back to top)

Acknowledgments

We'd like to thank everyone for their contributions to this project and the hackathon.

We would also like to thank the organizers of the Bio X AI Hackathon for putting on such a great event.

hackathon-cover

(back to top)

Quality Gate Status

Owner

  • Name: Matthew McAteer
  • Login: matthew-mcateer
  • Kind: user
  • Location: San Francisco, CA
  • Company: 5cube Labs

Interested in synthetic biology, biological aging, machine learning and Artificial Intelligence. ..also dogs and bad puns.

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 131
  • Total Committers: 5
  • Avg Commits per committer: 26.2
  • Development Distribution Score (DDS): 0.115
Past Year
  • Commits: 131
  • Committers: 5
  • Avg Commits per committer: 26.2
  • Development Distribution Score (DDS): 0.115
Top Committers
Name Email Commits
Matthew McAteer m****0@g****m 116
Shubhamai s****r@g****m 5
Viktorius Suwandi v****i@g****m 5
Ashenafee a****m@g****m 3
Joyce Lai l****e@g****m 2

Issues and Pull Requests

Last synced: about 2 years ago

All Time
  • Total issues: 5
  • Total pull requests: 15
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.67
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 15
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 1
  • Pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.67
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • matthew-mcateer (5)
Pull Request Authors
  • matthew-mcateer (6)
  • Shubhamai (3)
  • lai-joyce (2)
  • viktoriussuwandi (1)
  • ashenafee (1)
Top Labels
Issue Labels
help wanted (5) good first issue (5) enhancement (4)
Pull Request Labels