A full-stack web application to discover, search, and track scholarships based on major, location, and personal profile, powered by a recommendation engine and a RESTful API.
- 🔍 Scholarship Search — Full-text search with filters for major, location (state), education level, award amount, and deadline
- 🤖 AI Recommendation Engine — Profile-based suggestions using NLP-style keyword matching and eligibility scoring
- 👤 User Authentication — Secure JWT-based registration and login
- 📋 Application Tracker — Track every scholarship from "Interested" to "Awarded" with status updates
- ♥ Save Scholarships — Bookmark scholarships for later review
- 🎓 Profile Management — Complete academic profile to improve recommendation quality
- 📱 Responsive UI — Mobile-friendly React frontend
| Layer | Technology |
|---|---|
| Frontend | React, React Router, Axios, CSS Modules |
| Backend | Node.js, Express.js |
| Database | MongoDB (Mongoose ODM) |
| Auth | JWT + bcryptjs |
| Security | Helmet, CORS, express-rate-limit |
- Node.js 18+
- MongoDB (local or MongoDB Atlas)
# Backend
cd backend
cp .env.example .env # fill in MONGODB_URI and JWT_SECRET
npm install
# Frontend
cd ../frontend
cp .env.example .env # set REACT_APP_API_URL if needed
npm installcd backend
npm run seed# Backend (port 5000)
cd backend
npm run dev
# Frontend (port 3000)
cd frontend
npm startOpen http://localhost:3000 in your browser.
cd backend
npm testcd frontend
npm test| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /api/auth/register | — | Register new user |
| POST | /api/auth/login | — | Login and receive JWT token |
| GET | /api/auth/me | Required | Get current user profile |
| PUT | /api/auth/profile | Required | Update user profile |
| POST | /api/auth/save-scholarship/:id | Required | Toggle save/unsave a scholarship |
| GET | /api/scholarships | Optional | Search/filter scholarships |
| GET | /api/scholarships/featured | — | Get featured scholarships |
| GET | /api/scholarships/:id | — | Get scholarship detail |
| GET | /api/applications | Required | List tracked applications |
| POST | /api/applications | Required | Start tracking an application |
| PUT | /api/applications/:id | Required | Update application status/notes |
| DELETE | /api/applications/:id | Required | Remove tracked application |
| GET | /api/recommendations | Required | Get personalized recommendations |
GET /api/scholarships?search=engineering&major=CS&state=California&educationLevel=undergraduate&minAmount=1000&maxAmount=10000&deadline=2025-01-01&sort=-createdAt
PORT=5000
MONGODB_URI=mongodb://localhost:27017/scholarship_finder
JWT_SECRET=your_super_secret_key
JWT_EXPIRES_IN=7d
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
REACT_APP_API_URL=http://localhost:5000/api
scholarship/
├── backend/
│ └── src/
│ ├── config/ # Database connection
│ ├── controllers/ # Route handlers
│ ├── middleware/ # Auth, error handling
│ ├── models/ # Mongoose schemas
│ ├── routes/ # Express routers
│ ├── services/ # Seeder
│ └── index.js # App entry point
└── frontend/
└── src/
├── components/ # Reusable UI components
├── context/ # React Context (Auth)
├── pages/ # Page components
└── services/ # API client