How tkaturi7/student-registration works
This repository combines a student-registration web app with a security-gated delivery pipeline. Applicants submit registration details and a resume; the server validates and stores the resume in Google Cloud Storage, then records the registration in MySQL. Separately, pushes to main trigger a workflow that builds and scans a candidate image, and only after the ZAP gate passes pushes it to Artifact Registry and deploys to GKE. The registration page and workflow internals are documented or present in the tree but not sampled, so their internal behavior is shown only at that level.
Main entry points: deploy-gke.yaml GitHub Actions workflow · server.js Resume upload · index.html Registration page · deployment.yaml GKE deployment
Components 12
Registration app
- Registration page
public/index.html - Express server
server.js - Resume upload
server.js
Registration storage
- MySQL database
- Google Cloud Storage
Secure delivery
- GitHub Actions workflow
.github/workflows/deploy-gke.yaml - Candidate image
Dockerfile - OWASP ZAP scan
.github/workflows/deploy-gke.yaml - Artifact Registry
- GKE deployment
k8s/deployment.yaml
Other components
- Applicant
- Developer
Connections 13
- Applicant → Registration page: opens
- Registration page → Express server: submits registration
- Express server → Resume upload: handles registration
- Resume upload → Google Cloud Storage: stores resume
- Resume upload → MySQL database: records student
- Developer → GitHub Actions workflow: pushes to main
- GitHub Actions workflow → Candidate image: builds image
- GitHub Actions workflow → Candidate image: starts candidate
- GitHub Actions workflow → OWASP ZAP scan: runs scan
- OWASP ZAP scan → GitHub Actions workflow: gates release
- GitHub Actions workflow → Artifact Registry: pushes on pass
- GitHub Actions workflow → GKE deployment: deploys on pass
- GKE deployment → Artifact Registry: uses image