Your AI copilot for global education
EducationPython · TypeScriptGitHub @mahamudul-hasan-cseOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
GradPilot is an AI-powered study abroad platform for international students. Students can build a profile, upload documents, discover universities and scholarships, chat with an AI advisor, generate SOP drafts, plan their application timeline, and track applications — all from one dashboard.
Taken from the repository README
Loading the full README.
Read the full README ↗
GradPilot is an AI-powered study abroad platform for international students. Students can build a profile, upload documents, discover universities and scholarships, chat with an AI advisor, generate SOP drafts, plan their application timeline, and track applications — all from one dashboard.
Runs locally with Python + FastAPI, Next.js, PostgreSQL, and OpenRouter or Google Gemini (no Docker required).
Demo Video Link: https://youtu.be/GVCv6PTxnYU?si=4GEDcw7wUB0YRShk
| Area | What students can do |
|---|---|
| Profile | Save GPA, IELTS, field of study, goals; get readiness scores |
| Universities | Search 35+ real universities, filter by country, view details |
| Scholarships | Browse 40+ real scholarships with funding type and deadlines |
| AI Advisor | Chat with AI-powered study abroad guidance (OpenRouter or Gemini) |
| Planner | Personalized tasks linked to profile scores |
| Timeline | Visual journey of profile, documents, and application events |
| Applications | Kanban tracker for application stages |
| Documents | Upload IELTS, CV, transcripts |
| Layer | Stack |
|---|---|
| Frontend | Next.js 15, TypeScript, TailwindCSS, React Query, Zustand, NextAuth |
| Backend | FastAPI, SQLAlchemy, Alembic, PostgreSQL |
| AI | OpenRouter (preferred, default openai/gpt-4o-mini) or Google Gemini API (gemini-2.5-flash) |
| Production DB | Neon PostgreSQL (recommended) |
GradPilot-AI/
├── apps/
│ ├── api/ # FastAPI backend
│ └── web/ # Next.js frontend
├── packages/shared/ # Shared TypeScript types
├── docs/ # Product & technical documentation
├── scripts/ # Setup & run scripts (Windows + Unix)
├── uploads/ # Local document uploads (gitignored)
├── .env.example # Environment template (safe to commit)
└── README.md
git clone https://github.com/mahamudul-hasan-cse/GradPilot-AI.git
cd GradPilot-AI
Copy environment templates and fill in your own values:
# Root backend config
cp .env.example .env
# Frontend config
cp apps/web/.env.example apps/web/.env.local
Edit .env and set at minimum:
DATABASE_URL — your PostgreSQL connection stringSECRET_KEY, JWT_SECRET, AUTH_SECRET — long random stringsOPENROUTER_API_KEY (preferred) or GEMINI_API_KEY — at least one AI provider keyImportant:
AUTH_SECRETin root.envmust matchAUTH_SECRETinapps/web/.env.local.
Windows
scripts\setup_backend.bat
scripts\setup_frontend.bat
macOS / Linux
bash scripts/setup_backend.sh
bash scripts/setup_frontend.sh
cd apps/api
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
python scripts/seed_universities_scholarships.py
Windows
scripts\run_backend.bat
scripts\run_frontend.bat
macOS / Linux
bash scripts/run_backend.sh
bash scripts/run_frontend.sh
| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| API | http://localhost:8000 |
| API docs | http://localhost:8000/docs |
| Health check | http://localhost:8000/health |
Register an account, complete your profile, then explore universities, scholarships, AI advisor, and planner.
For a step-by-step walkthrough see docs/STARTUP_GUIDE.md.
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL URL (postgresql+asyncpg://...) |
SECRET_KEY | Yes | App secret for general signing |
JWT_SECRET | Yes | JWT signing key (32+ chars) |
AUTH_SECRET | Yes | NextAuth secret (must match frontend) |
OPENROUTER_API_KEY | One of these | OpenRouter API key — preferred provider when set |
OPENROUTER_MODEL | No | Default: openai/gpt-4o-mini |
GEMINI_API_KEY | One of these | Google Gemini API key — used when OpenRouter is not configured |
GEMINI_MODEL | No | Default: gemini-2.5-flash |
CORS_ORIGINS | No | Allowed frontend origins |
NEXT_PUBLIC_API_URL | Yes | Backend URL for frontend (in .env.local) |
Full template: .env.example
The following are gitignored and must stay on your machine only:
| Ignored | Why |
|---|---|
.env, .env.local | API keys, DB passwords, JWT secrets |
uploads/ | User-uploaded documents |
data/ | Local PostgreSQL data files |
tools/ | Local PostgreSQL binaries |
.venv/, node_modules/ | Dependencies |
Never commit:
If a secret was ever exposed, rotate it immediately (OpenRouter dashboard / Google AI Studio) and regenerate your JWT/AUTH secrets.
cd apps/api
alembic upgrade head
Backend
cd apps/api
pytest
Frontend lint
npm run lint:web
Generative AI is selected by get_generative_service() in apps/api/app/services/ai/__init__.py:
openrouter_service.py) when OPENROUTER_API_KEY is setgemini_service.py) when only GEMINI_API_KEY is set/health/ai reports active_provider, openrouter_configured, gemini_configured, and llm_model.
Supported methods: generate_text(), chat(), rewrite(), summarize(), analyze().
centralindia. See docs/azure-deploy.md.NEXT_PUBLIC_API_URL to the Azure API_URL.ENVIRONMENT=production, DEBUG=false, a 32+ character JWT_SECRET, and OPENROUTER_API_KEY or GEMINI_API_KEY..env files or API keysMd. Mahamudul Hasan
For setup issues, check docs/STARTUP_GUIDE.md or open a GitHub issue.