Go to file
2024-03-20 09:32:20 -04:00
docs Add architecture docs 2023-09-14 11:31:30 -04:00
extension [Extension] Update icon 2024-03-14 11:51:53 -04:00
sandbox [Sandbox] Add watch script 2024-03-12 18:34:04 -04:00
shared [Shared] Send output to callback for CPP runner 2024-03-13 20:09:31 -04:00
web [Web] Update deps 2024-03-20 09:32:20 -04:00
.dockerignore Merge shared code for submission running (extension/sandbox) and team submission info (extension/web) (#16) 2024-03-11 13:32:23 -04:00
.gitattributes Add gitattributes file to enforce unix LF 2024-03-11 13:19:30 -04:00
.gitignore gitignore entry for ".idea" (#7) 2023-11-05 11:06:45 -05:00
README.md Update README platforms 2024-03-13 13:21:27 -04:00

BW High School Programming Contest Environment

This is a mono-repo comprised of 4 components: web, sandbox, extension, and shared.

Each directory contains more detailed instructions for building, development, and deployment.

General Workflow after Cloning

Extension

Instruction for Extension assume Windows or Unix environment

  • After Clone
    • cd shared
      • npm ci - Install shared dependencies
      • npm run build - Build shared component
    • cd extension/bwcontest
      • npm ci - Install extension dependencies
      • npm run compile - Build extension
  • Development
    • cd shared
      • npm run watch - Watch for changes in shared component
    • cd extension/bwcontest
      • npm run watch - Watch for changes in extension
      • Press F5 or run in VSCode to run extension
  • Pre-Commit
    • cd shared
      • npm run format && npm run lint && npm run check - Format, lint, and check shared component
    • cd extension/bwcontest
      • npm run format && npm run lint && npm run check - Format, lint, and check extension
  • Deployment
    • cd shared
      • npm run build - Build shared component
    • cd extension/bwcontest
      • npx vsce package - Create .vsix extension file

Sandbox

Instruction for Sandbox assume Unix environment

  • After Clone
    • cd shared
      • npm ci - Install shared dependencies
      • npm run build - Build shared component
    • cd sandbox
      • npm ci - Install sandbox dependencies
      • npm run build - Build sandbox
  • Development
    • cd shared
      • npm run watch - Watch for changes in shared component
    • cd sandbox
      • npm run watch - Watch for changes in extension
  • Pre-Commit
    • cd shared
      • npm run format && npm run lint && npm run check - Format, lint, and check shared component
    • cd sandbox
      • npm run format && npm run lint && npm run check - Format, lint, and check sandbox
  • Deployment
    • cd sandbox
      • docker compose up --build - Build and run docker container

Shared

Instruction for Shared assumes either Unix or Windows environment

  • After Clone
    • cd shared
      • npm ci - Install shared dependencies
      • npm run build - Build shared component
  • Development
    • cd shared
      • npm run watch - Watch for changes in shared component
  • Pre-Commit
    • cd shared
      • npm run format && npm run lint && npm run check - Format, lint, and check shared component

Web

Instructions for Web assume Unix environment

  • After Clone
    • cd shared
      • npm ci - Install shared dependencies
      • npm run build - Build shared component
    • cd web
      • npm ci - Install web dependencies
      • npm run build - Build web
  • Development
    • cd shared
      • npm run watch - Watch for changes in shared component
    • cd web
      • npm run dev -- --host - Run development server for hot-reloading and type-gen
  • Pre-Commit
    • cd shared
      • npm run format && npm run lint && npm run check - Format, lint, and check shared component
    • cd web
      • npm run format && npm run lint && npm run check - Format, lint, and check web component
  • Deployment
    • cd web
      • docker compose up --build - Build and run docker container