Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that Campus Pulse 📡 is a newsletter-style web app where Bangladeshi university students share campus news: scholarships, internships, research, notes, skills, and events.
Problem: Opportunity news is scattered across Facebook groups and Messenger, so deadlines get missed and useful info gets lost.
How it works: When someone posts, Gemma AI automatically writes a 2-line Bangla summary, assigns a category, and generates a Bangla Weekly Digest newsletter (with share link and copy button).
Features:
Feed with category/university filters, search, and deadline badges (red/yellow/green, gray when expired) Mobile-first UI with Bangla typography, loading skeletons, and empty/error states Security: honeypot, rapid-submit block, IP rate limiting, length limits, http/https links only Keyword-based fallback if the AI is down, so posting never breaks
Stack: Next.js 16, Tailwind CSS v4, Supabase (PostgreSQL), @google/genai, Vercel
Setup: Run npm install, create .env.local from .env.example, run supabase.sql in Supabase, then npm run dev.
Env vars: GEMINI_API_KEY (server-only), NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY
Note: Gemma 4 E4B is an open-weight model, called here through the Google AI Studio API rather than self-hosted. If you get a 404, update the model ID in lib/ai.ts.we're proud of
What we learned
What's next for Campus Pulse
Built With
- css
- next.js
- tailwind