Week #4

Week #4 #

Testing and QA #

Summary of testing strategy and types of tests implemented. We have implemented a combination of unit tests and Postman-based integration tests for API endpoints. All tests are automatically executed in the CI pipeline on every pull request and push to dev.

Evidence of test execution #

CI/CD #

The CI/CD pipeline is built with GitHub Actions, triggered by PRs to main, pushes to dev/devops, and manual dispatch. It includes four stages:

1. Backend checks: staticcheck, gofmt, go test

2. Frontend checks: npm ci, Prettier formatting, ESLint linting

3. Compose tests: Docker Compose up, container health checks, HTTP response validation

4. Push images: Authenticate to GHCR, build & push Docker images for all services

Deployment #

Staging #

We deploy to staging using Docker Compose orchestrated by Coolify + Nixpacks, exposing services through a Cloudflare tunnel. ICD club servers host the environment; secrets and .env are managed securely.

Production #

Currently, our production environment is hosted on a single VPS (ICD club server) using docker-compose. The deployment steps are:

  • Image build & push: On merge to main, GitHub Actions builds Docker images and pushes them to GHCR.

  • Compose deployment: The server pulls images from GHCR and runs docker-compose to update services.

  • DNS: The domain is https://platform.innochipdesign.ru/.

Vibe Check #

  • Resources & Expertise: Team generally has sufficient capacity, though Diana feels she needs deeper backend guidance for faster frontend integration.
  • Blockers: Task distribution and management could be streamlined for clearer ownership.
  • Team Value: All members acknowledge their contributions.

Weekly commitments #

Individual contribution of each participant #

Team MemberWeek #2 ContributionsCommits
Mikhail PanteleevSocial communication for finding server (+ domen), initial service and bugs fix in backend, hard thinking about jadger parser, deploy.db6086f, 062f3bc, aa54f9f
Vladislav MerkulovRunner integration into system, testing.8af80eb, fb4008d
Aleksei FominykhDeveloping Judger parser, staging, kuber.
Sofia KulaginaCI/CD using docker-compose instead of build and pushing in GitHub container, initial service in CI/CD.bcc9ad5
Diana YakupovaMeeting organization, report, backend api in contest components, configure api in api client with auth.a03c80e

Plan for Next Week #

In Week #5, our goal is to finilize testing, provide more backend API in frontend, bug fixing and finilizing judger-parser in backend. We will also work on deploying the application to production.

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • [✔] In working condition.
  • [✔] Run via docker-compose.