GitExplorer is a full-stack MERN application that allows users to explore GitHub profiles and repositories, authenticate using GitHub OAuth, like other users’ profiles, and discover popular repositories by programming language.
This project is built with production-grade authentication, API handling, and deployment using modern best practices.
- 🔐 GitHub OAuth Authentication (Passport.js)
- 👤 View any GitHub user’s profile and repositories
- ⭐ Like other users’ profiles (stored in MongoDB)
- ❤️ View profiles that liked you
- 🔍 Explore trending repositories by language
- ⚡ Authenticated GitHub API requests (avoids rate limits)
- 🌐 Fully deployed (Frontend + Backend)
- 🧠 Clean architecture with controllers, routes, and middleware
- React (Vite)
- Tailwind CSS
- React Router
- React Hot Toast
- Node.js
- Express.js
- MongoDB + Mongoose
- Passport.js (GitHub OAuth)
- GitHub REST API
- Frontend: Vercel
- Backend: Render
- Database: MongoDB Atlas
-
Frontend:
https://git-explorer-soriful-islam-sks-projects.vercel.app/ -
Backend API:
https://gitexplorer-backend-2xtf.onrender.com
PORT=5000
MONGO_URI=your_mongodb_connection_string
GITHUB_CLIENT_ID=your_github_oauth_client_id
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret
GITHUB_API_KEY=your_github_personal_access_token
CLIENT_BASE_URL=https://git-explorer-dbamvbh4o-soriful-islam-sks-projects.vercel.app
SESSION_SECRET=any_long_random_secretVITE_API_BASE_URL=https://gitexplorer-backend-2xtf.onrender.comYou need two different GitHub credentials:
-
GitHub OAuth App
- Used for login
- Provides
GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET
-
GitHub Personal Access Token (Classic)
-
Used to fetch GitHub API data
-
Scopes required:
read:userpublic_repo
-
GET /api/auth/github
GET /api/auth/github/callback
GET /api/auth/check
GET /api/auth/logout
GET /api/users/profile/:username
POST /api/users/like/:username
GET /api/users/likes
GET /api/explore/repos/:language
git clone https://github.com/emcc2302/GitExplorer.git
cd GitExplorercd backend
npm install
cd ../frontend
npm install# Backend
cd backend
npm run dev
# Frontend
cd frontend
npm run dev
- GitHub OAuth with Passport.js
- Secure session handling across domains
- Handling third-party APIs safely
- CORS & cookies in production
- Environment-based configuration
- Real-world deployment debugging
Soriful Islam Sk 3rd Year CSE Student Aliah University
- GitHub REST API
- Passport.js Documentation
- Render & Vercel Docs