The ultimate decision-support platform built specifically for Bangladeshi students pursuing graduate admissions (MSc/PhD) abroad in CS, AI, ML, and Engineering.
Standard study-abroad tools focus on generic dashboards and simple university rankings. But applying for a technical graduate degree under a Bangladeshi Passport presents unique realities.
GradPlanner solves the real bottlenecks:
- Funding > Rankings: Prioritizes programs with active TA/RA stipends, DAAD, MEXT, and fully funded fellowship packages β not just QS rankings.
- Bangladesh-Specific Visa Intelligence: Tracks German APS bottlenecks (2.5+ yr Dhaka wait times), Canadian SDS requirements, and USA F-1 interview strategies with BD-specific rejection rate data.
- AI-Powered Professor Outreach: LLM-assisted cold email generator (5 focus modes) drafts tailored outreach to professors in under 2 minutes with tone, funding, and research-fit alignment.
- PR & Visa Pathway Simulator: Interactive country-by-country immigration timeline β Student Visa β Post-Study Work β PR β Citizenship β with honest BD-specific risk ratings and hidden costs.
- Deadline Notification Engine: Smart deadline reminders for application windows, follow-up timers, document expiry alerts, and urgent Sonner toasts across 5 event types.
- Command Palette (βK): Instant cross-entity search across universities, professors, countries, and rankings β navigate anywhere without leaving the keyboard.
- Advanced Analytics & ROI Dashboard: Application funnel chart, financial ROI breakdown, professor outreach distribution, and 365-day activity heatmap powered by Recharts.
- Document Timelines: Schedules document gathering (police clearances, APS certificates, GIC bank transfers) matching real Dhaka-to-embassy timeline realities.
- PWA & Offline Mode: Installable as a home-screen app on Android/iOS with service-worker caching, offline banner, and Brotli-compressed API responses.
GradPlanner is built as a highly performant, decoupled monorepo:
- Framework: Next.js 15 (App Router) with TypeScript Strict
- State Management: Redux Toolkit + Redux Persist
- Styling: Tailwind CSS v4 & shadcn/ui component library
- Charts & Visuals: Recharts (funnel, bar, pie) + custom SVG heatmap
- Command Palette:
cmdk+ shadcn Command component - Notifications: Sonner toast + in-app notification panel
- PWA: Custom Service Worker + Web App Manifest +
InstallBanner - Client Authentication:
better-authclient instance
- Server: Express.js with TypeScript
- Database ORM: Prisma 7 (PostgreSQL)
- Database: PostgreSQL with JSONB country intelligence fields
- Authentication:
better-authserver handler - AI Integration: OpenAI
gpt-4o-miniviallmService(professor email generation) - Performance:
compressionmiddleware (Brotli/Gzip) +Cache-Controlheaders
βββ backend/ # Express.js REST API server
β βββ prisma/ # Schema, migrations, and seed scripts (3045 rankings + 20 countries)
β βββ src/
β βββ routes/ # All REST endpoints (auth, profile, countries, professors, ai, analyticsβ¦)
β βββ services/ # Business logic: notificationService, llmService
β βββ validators/ # Zod schemas for every route
β βββ lib/ # Auth handler, logger, Prisma client
βββ frontend/ # Next.js 15 (App Router) with shadcn/ui dashboard
β βββ public/
β β βββ countries/ # 21 country intelligence JSON files (visa, PR, costs, risks)
β β βββ manifest.json # PWA Web App Manifest
β β βββ sw.js # Custom Service Worker (cache-first / network-first strategies)
β βββ src/
β βββ app/dashboard/ # Dashboard pages (pathways, analytics, professors, rankingsβ¦)
β βββ components/ # Shared UI: notifications, onboarding, skeletons, analytics charts
β βββ lib/
β β βββ api.ts # Centralized API client (all fetch calls)
β β βββ store/slices/ # Redux Toolkit slices (profile, countries, professors, notificationsβ¦)
β βββ hooks/ # useDebounce, useSwipeGesture, useNetworkStatus, useCommandPalette
βββ notebook/ # Data preprocessing scripts + universities.csv (3045 rows)
βββ AGENTS.md # Product guidance for AI agents
βββ CONTRIBUTING.md # Contribution workflows & guidelines
βββ implementation.md # Phase-by-phase implementation plan & acceptance criteria
βββ LICENSE # MIT License
βββ README.md # Main workspace documentation
Install dependencies for both frontend and backend using pnpm from the root directory:
pnpm installCreate .env files in both backend/ and frontend/ folders:
backend/.env
DATABASE_URL="postgresql://user:password@localhost:5432/gradplanner?schema=public"
BETTER_AUTH_SECRET="your-super-secret-auth-key"
BETTER_AUTH_URL="http://localhost:5000"
OPENAI_API_KEY="sk-..." # Required for AI professor email generationfrontend/.env.local
NEXT_PUBLIC_API_URL="http://localhost:5000"
NEXT_PUBLIC_BETTER_AUTH_URL="http://localhost:5000"Ensure you have a PostgreSQL database running, then apply migrations:
cd backend
pnpm exec prisma migrate devSeed the reference country intelligence and university ranking datasets (3045 rankings + 20 countries):
pnpm exec prisma db seedStart both services in development mode:
-
Backend Server:
cd backend pnpm dev(Starts API on
http://localhost:5000) -
Frontend Client:
cd frontend pnpm dev(Starts Next.js on
http://localhost:3000)
Run type checks in both workspaces after any TypeScript changes:
cd backend && pnpm type-check
cd frontend && pnpm type-checkcd frontend
ANALYZE=true pnpm build| Phase | Feature | Status |
|---|---|---|
| 1 | Backend API hardening β Zod validation, ApiResponse<T>, rate limiting, seed data |
β Done |
| 2 | Onboarding wizard β 4-step profile setup, isOnboarded gate, completeness bar |
β Done |
| 3 | Loading skeletons, error states, empty states overhaul (10 locations) | β Done |
| 4 | Mobile-first UI β bottom nav, swipe gestures, 44px touch targets, fluid typography | β Done |
| 5 | Notification & deadline reminder engine β 6 CRUD endpoints, Sonner toasts | β Done |
| 6 | Global search & command palette β βK, cross-entity search, grouped results | β Done |
| 7 | Advanced analytics & ROI dashboard β funnel, financial, outreach, heatmap | β Done |
| 8 | AI professor email generator β OpenAI gpt-4o-mini, 5 focus modes, template fallback |
β Done |
| 9 | PR & visa pathway simulator β interactive timeline, BD-specific risks, comparison view | β Done |
| 10 | PWA & performance β service worker, offline mode, Brotli compression, bundle analysis | β Done |
Contributions to GradPlanner are highly welcome! Please read our CONTRIBUTING.md to understand branch conventions, coding guidelines, and PR procedures.
Distributed under the MIT License. See LICENSE for more details. Copyright (c) 2026 Atik203.