Goal
Build and deploy a simple landing page for both frontend repos:
frontend-<team>-airline and
frontend-<team>-travel. You may use AI assistance.
I only care that a real page is deployed successfully and that it
exposes the required test hooks below.
https://stage.<team>-airline.incs1008.com and
https://stage.<team>-travel.incs1008.com. After stage
is verified, merge to main/master so the prod workflow
deploys to https://<team>-airline.incs1008.com and
https://<team>-travel.incs1008.com.
Required HTML IDs
Include these exact element IDs. I will evaluate your deployed page against them:
app-title– top page title / airline or travel brandfrom-input– origin fieldto-input– destination fielddepart-input– depart date fieldreturn-input– return date fieldpassengers-input– passengers fieldsearch-button– search CTA
The page can be visually simple. The important part is that those IDs exist on the deployed page and the page renders without errors.
Workflow Files
Copy these templates from
workflow-examples
into each frontend repo under .github/workflows/:
pr.ymlfrontend-deploy-stage.ymlfrontend-deploy-prod.yml
Then update the environment variables in each deploy workflow:
S3_BUCKETCLOUDFRONT_DISTRIBUTION_ID
Use Terraform outputs from infra/terraform/ to find the
bucket names and CloudFront distribution IDs.
Deployment Flow
- Open a pull request to
developin each frontend repo. -
pr.ymlshould run your frontend tests. -
After merging into
develop, the stage workflow builds the app, uploads the static bundle to S3, and invalidates CloudFront. - Verify the deployed stage URL in the browser.
-
After stage is healthy, open a PR from
developtomain/master. - When that PR is merged, the prod workflow deploys the same app to the prod S3 bucket + CloudFront distribution.
Validation
Example deployed airline frontend: stage.white-airline.incs1008.com / white-airline.incs1008.com
-
Stage airline:
https://stage.<team>-airline.incs1008.com -
Stage travel:
https://stage.<team>-travel.incs1008.com -
Prod airline:
https://<team>-airline.incs1008.com -
Prod travel:
https://<team>-travel.incs1008.com
I will validate that your page loads and that the required element IDs are present.
Grading Breakdown
| Criterion | Points |
|---|---|
git-flow-develop | 1 |
git-flow-feature-branch-naming | 1 |
git-flow-pull-requests-to-develop | 1 |
frontend-airline-landing-page | 8 |
frontend-travel-landing-page | 8 |
frontend-airline-required-components | 7 |
frontend-travel-required-components | 7 |
frontend-airline-stage-deployment | 5 |
frontend-travel-stage-deployment | 5 |
frontend-airline-prod-deployment | 5 |
frontend-travel-prod-deployment | 5 |
in-class-instructor-assessment | 27 |
| Total | 80 |