Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #1

Open
9 of 43 tasks
liammulh opened this issue Apr 5, 2024 · 0 comments
Open
9 of 43 tasks

Roadmap #1

liammulh opened this issue Apr 5, 2024 · 0 comments
Assignees

Comments

@liammulh
Copy link
Member

liammulh commented Apr 5, 2024

HCI Roadmap

This issue serves as a roadmap / to-do list for the development of the HCI.

  • Each level-2 header (##) is an epic.
    • 🔜 denotes a to-do epic.
    • 🔛 denotes an in-progress epic.
    • ✔️ denotes a finished epic.
  • Each level-3 header (###) is a project.
    • 🔴 denotes a to-do project.
    • 🟠 denotes an on-hold project.
    • 🟡 denotes an in-progress project.
    • 🟢 denotes a finished project.

If a project is on hold, there must be a justification for putting it on hold beneath the project's header.

✔️ Create Plan

🟢 Create Plan for Software

  • Use Django as a web framework.
  • Use Django's built-in HTML templating.
  • Use Postgres as a database.
  • Use HTMX.
  • If necessary, use Alpine.js or React for extra interactivity.

🟢 Create Plan for Infrastructure

Infrastructure code is housed in a separate repository.

  • Use Terraform to create/destroy resources.
  • Use ECS and ECR for the application code.
  • Use RDS for the database.
  • Use CloudWatch for monitoring.
  • Use GitHub Actions for deployment.

🟢 Create Wireframes

🟢 Create Data Model

🔜 Create Infrastructure

🟢 Learn Terraform and Ansible

  • Learn and experiment with Terraform
  • Learn and experiment with Ansible

🟢 Set up Infra Repo

  • Create infrastructure repository
    • See the infra repo here.
  • Create scripts for IaC code quality
    • See the check script here.

🔴 Create AWS Resources on the Stanford AWS Account

  • Create Terraform IaC for a Route 53 prod subdomain
  • Create Terraform IaC for a Route 53 test subdomain
  • Create Dockerfile for application code
  • Create Terraform IaC for ECS
  • Create Terraform IaC for ECR (if necessary)
  • Create Terraform IaC for CloudWatch (if necessary)

🔴 Deploy HCI

See these GitHub docs.

  • Deploy HCI to test server
  • Deploy HCI to production server

🔜 Create GitHub Actions Workflows

🔴 Run Code Quality Checks

  • Create GitHub Actions workflow that formats, lints, type checks, and runs tests when a PR is opened

🔴 Deploy to Test Server

  • Create GitHub Actions workflow that deploys the latest changes to the test server if the code quality checks pass

🔴 Deploy to Production Server

  • Create GitHub Actions workflow that deploys the latest changes to the production server if the pull request is merged

🔛 Add Functionality

See the wireframes.

🟠 Add Basic Screens

This project is on hold while I work on infrastructure.

🔴 Add "All" Screens

  • Create the all curations screen and associated functionality
  • Create the all diseases screen and associated functionality
  • Create the all alleles/haplotypes screen and associated functionality
  • Create the all publications screen and associated functionality

🔴 Add "New" Screens

  • Create the new curation screen and associated functionality
  • Create the new disease screen and associated functionality
  • Create the new allele screen and associated functionality
  • Create the new publication screen and associated functionality

🔴 Add Curation Screens

  • Create the curation overview screen and associated functionality
  • Create the curation edit screen and associated functionality

Miscellaneous Tasks

  • Remove backronym from README
  • In documentation, code comments, and issues, we should refer to web pages as "pages" rather than "screens" #33
  • Chrome DevTools can't find PNG #32
  • Put hx-boost in the body rather than creating an extra div.
  • Commit updated data model SVG (I changed "user" to "curator" and other small changes on 9/11)
  • Remove "begin x / end x" comments from the HTML templates
  • Add HTMX to the static files
  • Remove hx-swap="innerHTML" from base.html because it isn't necessary (innerHTML is the default)
  • Add HTMX's "boost" feature to the base.html template because it converts normal anchor and form requests into AJAX requests that swap the body (which gives the app the smooth feeling of modern SPAs)
  • Edit the wireframes to include a button for changing the curation summary screen to the curation edit screen
  • Conform to Gecko best practices
  • Add repo to OpenSSF
  • Work on OpenSSF compliance

Q&A

Here's an issue where I collect questions and (hopefully) answers to them.

@liammulh liammulh self-assigned this Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant