A cloud-native event-management platform for university expos, departmental seminars and community meet-ups. Organisers create events, approve registrations and run on-site check-in via a rotating 6-character door code; participants discover events, register (with optional approval message) and check in by code on the day.
AUT INFS803 Cloud Computing 2026 S1 — Group 4 Final Project.
Classic three-tier app with every stateful concern delegated to a managed AWS service:
- Frontend — Next.js 16 (App Router, TypeScript, Tailwind v4) deployed on Vercel's edge network.
- Backend — Laravel 13 REST API on a single
t4g.microEC2 inap-southeast-2, running Nginx + PHP-FPM + queue worker + Laravel Reverb WebSocket under supervisord. - Data plane — RDS MySQL 8.4, S3 (uploads via presigned URLs), SQS (async jobs and email fan-out), SES (transactional email).
- Edge — Cloudflare for DNS, TLS termination, WAF and WebSocket pass-through.
- Auth — Email + 6-digit verification code or Google OAuth (Laravel Socialite), with Sanctum bearer tokens for the API.
.github/workflows/ GitHub Actions deploy pipeline (OIDC → S3 → SSM)
backend/ Laravel 13 API — Sanctum, Reverb, Pest, Pint
frontend/ Next.js 16 client — Tailwind v4, pnpm workspace
cd backend
composer install
cp .env.example .env && php artisan key:generate
php artisan migrate --seed
php artisan serve # http://127.0.0.1:8000Test and lint:
php artisan test --compact
vendor/bin/pintcd frontend
pnpm install
pnpm dev # http://localhost:3000Point the client at a local API by setting NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:8000/api/v1 in frontend/.env.local.
A push to main triggers two parallel pipelines:
- Vercel rebuilds and atomically promotes the frontend.
- GitHub Actions (
.github/workflows/deploy.yml) lints and tests the backend, assumes a short-lived AWS role via OIDC, uploads the rendered.envto the deploy S3 bucket, then runs the deploy script on EC2 through SSM Send-Command. No long-lived AWS access keys exist in the repo or on the instance.
Coursework submission for AUT INFS803 Cloud Computing (2026 S1). Not licensed for production reuse.
