How jayed2003/globaled-temp works
GlobalEd is a study-abroad and IELTS consultancy website whose primary workflow turns public consultation or IELTS-booking submissions into stored leads, confirmation emails, and company alerts. Its public pages also present editable consultancy content, while an authenticated admin CMS manages that content and handles leads and contact messages. The README documents the broader CMS capabilities; sampled source confirms the lead-submission path and examples of content reads and admin writes. Several unsampled subsystem links are shown only where the README documents them.
Main entry points: route.ts Lead endpoint · admin Admin APIs · (site) Public pages · db.ts PostgreSQL database
Components 23
Public experience
- Public pages
src/app/(site) - Service pages
src/components/sections/ServicesGrid.tsx - Service card
src/components/cards/ServiceCard.tsx - Legal content
src/data/legal.ts
Lead engagement
- Booking form
src/components/forms/ConsultationForm.tsx - Contact form
src/components/forms/ContactForm.tsx - Lead endpoint
src/app/api/leads/route.ts - Contact endpoint
src/app/api/contact/route.ts - Email delivery
src/lib/email.ts
Admin CMS
- Leads and messages
src/app/admin/(dashboard)/leads/page.tsx - Admin dashboard
src/app/admin/(dashboard) - Content editors
src/components/admin - Admin APIs
src/app/api/admin - Activity log
src/lib/activity.ts
Application services
- Content reads
src/lib/content - Bot verification
src/lib/turnstile.ts - Rate limiting
src/lib/rate-limit.ts - Admin route guard
src/lib/api/admin-route.ts - Input validation
src/lib/validation - PostgreSQL database
src/lib/db.ts
Other components
- Site visitor
- Resend
- Cloudflare Turnstile
Connections 27
- Site visitor → Public pages: browses
- Public pages → Content reads: loads content
- Public pages → Legal content: renders policies
- Public pages → Service pages: shows services
src/components/sections/ServicesGrid.tsx - Service pages → Service card: renders cards
src/components/sections/ServicesGrid.tsx - Site visitor → Booking form: submits booking
- Site visitor → Contact form: sends enquiry
- Booking form → Lead endpoint: posts lead
- Contact form → Contact endpoint: posts message
- Lead endpoint → Rate limiting: checks limits
src/app/api/leads/route.ts - Lead endpoint → Input validation: validates submission
src/app/api/leads/route.ts - Lead endpoint → Bot verification: verifies token
src/app/api/leads/route.ts - Lead endpoint → PostgreSQL database: stores lead
src/app/api/leads/route.ts - Lead endpoint → Content reads: looks up branches
src/app/api/leads/route.ts - Lead endpoint → Email delivery: sends alerts
src/app/api/leads/route.ts - Contact endpoint → PostgreSQL database: stores message
src/app/api/contact/route.ts - Contact endpoint → Email delivery: sends notification
src/app/api/contact/route.ts - Email delivery → Resend: delivers email
- Bot verification → Cloudflare Turnstile: checks response
- Admin dashboard → Content editors: edits content
- Content editors → Admin APIs: saves changes
src/components/admin/ServiceForm.tsx - Admin APIs → Admin route guard: uses guard
src/app/api/admin/blogs/route.ts - Admin APIs → Input validation: validates writes
src/app/api/admin/blogs/route.ts - Admin APIs → PostgreSQL database: reads and writes
src/app/api/admin/blogs/route.ts - Admin APIs → Activity log: records changes
src/app/api/admin/blogs/route.ts - Admin dashboard → Leads and messages: reviews submissions
- Content reads → PostgreSQL database: reads published data
src/lib/content/services.ts