The official platform for the AWS Student Builder Group at Graphic Era Deemed to be University. Learn cloud, AI, and full-stack development while building real-world projects and shipping impactful solutions.
frontend/ (port 5173) → Public website
portal/ (port 5174) → Member portal (PWA) → backend/ (port 4000) → SQLite/PostgreSQL
| App | Description |
|---|---|
frontend/ |
Public landing page, events, team, blog, gallery |
backend/ |
Express REST API — 20+ routes, Prisma ORM, JWT auth |
portal/ |
Member portal — PWA, installable, push notifications |
git clone https://github.com/pwnjoshi/AWS-Cloud-Club-CMS.git
cd AWS-Cloud-Club-CMS
# Backend
cd backend && npm install && cp .env.example .env
npx prisma db push && node prisma/seed.js && npm run dev
# Portal (new terminal)
cd portal && npm install && npm run dev
# Public site (new terminal)
cd frontend && npm install && npm run devDefault logins: admin@awssbggeu.in / admin123456 · member@example.com / member123456
See SETUP.md for full configuration guide (Google OAuth, email, push notifications, AWS Lab, PostgreSQL).
| Feature | Description |
|---|---|
| Dashboard | Points, attendance, certificates, announcements |
| Events | Browse, register, QR scan or OTP check-in with geolocation |
| AWS Lab | Temporary AWS credentials during events (STS AssumeRole) |
| Points | Immutable ledger — earn via attendance, certs, referrals, blogs, suggestions |
| Leaderboard | Top 50 builders ranked by points |
| Badges | 15+ achievement badges, auto-awarded + admin custom badges with images |
| Certificates | Unique QR codes, public verification page |
| Resources | Categorized learning materials, completion tracking |
| Blogs | Submit posts for review, community feed, points on approval |
| Referrals | Anti-spoof: 5/day cap, 1hr account age, geo-verified attendance |
| Rewards | Redeem points for rewards |
| Suggest Events | Propose ideas, earn points if approved |
| Support | Submit tickets, admin replies |
| Profile | Edit name, bio |
| PWA | Install as app, push notifications |
| Feature | Description |
|---|---|
| Dashboard | 11 metrics + charts (signups/day, attendance/event, top builders) |
| Users | Add, bulk add (CSV), edit name/email/password, toggle role, activate/deactivate |
| Events | Create, rotating OTP + QR check-in with configurable geo, manual add attendee |
| Certificates | Issue single or one-click bulk to event attendees, unique QR per cert |
| Badges | Create custom badges with images, award to any user |
| Points | Manual adjust with searchable member select |
| Blogs | Approve/reject submissions |
| Suggestions | Review event ideas, award points (25/50 pts) |
| Support | View/reply to tickets, filter by status |
| Rewards | Add, enable/disable, delete |
| Announcements | Create with priority levels |
| Bulk Email | HTML emails with {{name}} personalization (Resend) |
| Push Notifications | Send to all subscribed users (VAPID) |
| AWS Lab | Enable per event, configure services/duration, revoke sessions |
| Maintenance Mode | One-click portal lockdown for all non-admin users |
| Audit Log | Full trail of every admin action |
| Layer | Implementation |
|---|---|
| Auth | JWT + bcrypt (12 rounds), Google OAuth, forced password reset for admin-created users |
| Email validation | Only Gmail, Outlook, Yahoo, GEU, iCloud, ProtonMail — temp/disposable emails blocked |
| Input sanitization | HTML tags stripped from all text inputs |
| Rate limiting | 30 login attempts/15min, 1000 global/15min |
| Anti-fraud points | Immutable ledger, OTP + geo attendance, referral caps, account age checks |
| Rotating OTP | 30s default (10-300s configurable), QR code, geolocation radius check |
| Maintenance mode | Instant portal lockdown, admin-only access |
| CORS | Configurable allowed origins |
| Helmet | Security headers on all responses |
| Audit trail | Every admin action logged with actor, target, details |
| Past event guard | Check-in and AWS Lab blocked after event ends |
| Data persistence | PostgreSQL for production, auto-backup for SQLite dev |
Admin starts session → Code rotates every 30s → QR + OTP displayed
Student scans QR or enters code → Geo verified (if enabled) → Attendance + points
| Action | Points | Verification |
|---|---|---|
| Event attendance | 50 | Rotating OTP + geo |
| AWS certification | 200 | Admin verifies |
| Blog approved | 50 | Admin reviews |
| Event suggestion approved | 25-50 | Admin reviews |
| Referral | 30 | First event + 1hr account age |
| Resource completion | 20 | One-time, server-side |
| Hackathon | 100 | Admin-issued |
| App | Platform | Root Dir | Build | Output |
|---|---|---|---|---|
| Public site | Vercel/Netlify | frontend |
npm run build |
dist |
| Portal | Vercel/Netlify | portal |
npm run build |
dist |
| Backend | Railway/Render | backend |
— | npm start |
⚠️ Use PostgreSQL for production — SQLite data is lost on Render cold starts. See SETUP.md.
- Fork → 2. Branch → 3. Commit → 4. PR
Made with ❤️ by Pawan Joshi
© 2025-2026 AWS Student Builder Group GEU
Same Community. Bigger Vision.