CampusFind is a full-stack college discovery and decision-making platform built using Next.js, Prisma, PostgreSQL (Neon), NextAuth, TailwindCSS, and shadcn/ui.
The platform helps students explore colleges, compare institutions, predict college matches based on rank, save colleges, and participate in student discussions.
- Search colleges
- Filter colleges
- View ratings, fees, and locations
- Responsive college cards
- College overview
- Placement information
- Student reviews
- Fees and ratings
- Compare multiple colleges side-by-side
- Compare:
- fees
- ratings
- placements
- location
- Input entrance exam rank
- Get safe, match, and reach college suggestions
- Mock cutoff-based recommendation system
- Login system using NextAuth
- Save colleges
- View saved colleges
- Save college comparisons
- Browse discussions
- View discussion details
- Answer discussion threads
- Next.js
- React
- TypeScript
- TailwindCSS
- shadcn/ui
- Next.js API Routes
- Prisma ORM
- PostgreSQL (Neon)
- NextAuth
- Vercel
- Neon PostgreSQL
The application follows a full-stack architecture using Next.js App Router.
- Frontend pages are built using React Server Components and Client Components.
- Prisma ORM handles database communication.
- PostgreSQL (Neon) stores colleges, users, saved colleges, and comparisons.
- NextAuth manages authentication and protected routes.
- APIs are implemented using Next.js route handlers.
Main database entities include:
- User
- College
- Review
- SavedCollege
- SavedComparison
git clone <your-repository-url>
cd campusfind
## 2. Install Dependencies
npm install
## 3. Configure Environment Variables
Create a .env file:
DATABASE_URL=your_database_url
NEXTAUTH_SECRET=your_secret
NEXTAUTH_URL=http://localhost:3000
## 4. Run Prisma Migration
npx prisma migrate dev
## 5. Seed Database
npm run db:seed
## 6. Start Development Server
npm run dev
## Demo Credentials
Email: demo@college.com
Password: password123
## Key Engineering Decisions
- Used Prisma ORM for type-safe database access
- Used PostgreSQL for relational data persistence
- Used NextAuth for secure authentication
- Implemented protected saved routes
- Built reusable UI components using shadcn/ui
- Focused on responsive and production-oriented UX
## Challenges Faced
- Handling authentication flow with protected routes
- Database schema migrations using Prisma
- Integrating saved comparisons
- Managing responsive layouts
- Handling dynamic routing in Next.js App Router
## Future Improvements
- Real-time discussion system
- Advanced predictor algorithm
- Pagination and infinite scroll
- Advanced filtering
- AI-based college recommendations
- User profile customization
## Author
Pari Sangamnerkar
## License
This project was built as part of a Full Stack Developer internship assignment.