A modern web application to discover, compare, and shortlist engineering colleges across India.
- College Discovery: Browse and search through a comprehensive database of engineering colleges
- Advanced Filtering: Filter colleges by location, rating, fees, and placement packages
- Comparison Tool: Compare multiple colleges side-by-side to make informed decisions
- Saved Items: Save colleges and comparisons for later review (requires authentication)
- Google Authentication: Secure login with Google OAuth
- Responsive Design: Beautiful dark-themed UI that works on all devices
- Frontend: Next.js 16, React, TailwindCSS, shadcn/ui
- Backend: Next.js API Routes
- Database: PostgreSQL (Neon)
- ORM: Prisma
- Authentication: Auth.js with Google OAuth
- State Management: React Hooks, LocalStorage
- Node.js 18+ installed
- PostgreSQL database (Neon recommended)
- Google OAuth credentials
- Clone the repository:
git clone https://github.com/anish1206/college-discovery-platform.git
cd college-discovery-platform- Install dependencies:
npm install- Set up environment variables (copy from
.env.example):
DATABASE_URL=your_neon_database_url
DIRECT_URL=your_neon_direct_url
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
NEXTAUTH_SECRET=generate_a_random_secret
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_BASE_URL=http://localhost:3000- Run database migrations:
npx prisma migrate dev- Seed the database (optional):
npx prisma db seed- Run the development server:
npm run devOpen http://localhost:3000 to view the application.
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── college/ # College detail pages
│ ├── compare/ # Comparison page
│ ├── saved/ # Saved items page
│ └── login/ # Login page
├── components/ # React components
│ ├── colleges/ # College-specific components
│ └── ui/ # shadcn/ui components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── types/ # TypeScript types
└── data/ # Static data
GET /api/colleges- List all colleges with filtersGET /api/colleges/[id]- Get college detailsPOST /api/saved/college- Save a collegeDELETE /api/saved/college- Unsave a collegePOST /api/saved/comparison- Save a comparisonDELETE /api/saved/comparison- Delete a comparisonGET /api/saved- Get user's saved items

