Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ScholarFinder — Scholarship Discovery Web Application

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.

Features

  • 🔍 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

Tech Stack

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

Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB (local or MongoDB Atlas)

1. Clone and install

# 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 install

2. Seed sample scholarships

cd backend
npm run seed

3. Start the servers

# Backend (port 5000)
cd backend
npm run dev

# Frontend (port 3000)
cd frontend
npm start

Open http://localhost:3000 in your browser.

4. Run backend tests

cd backend
npm test

5. Run frontend tests

cd frontend
npm test

API Endpoints

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

Search Query Parameters

GET /api/scholarships?search=engineering&major=CS&state=California&educationLevel=undergraduate&minAmount=1000&maxAmount=10000&deadline=2025-01-01&sort=-createdAt

Environment Variables

Backend .env

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

Frontend .env

REACT_APP_API_URL=http://localhost:5000/api

Project Structure

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

About

Scholarship Finder

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages