尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 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.