GitExplorer is a full-stack MERN application that allows users to explore GitHub profiles and repositories, authenticate using GitHub OAuth, like other users' profiles, discover popular repositories by programming language, and chat in real-time with other users. This project is built with production-grade authentication, API handling, real-time communication, 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)
- π¬ Real-time chat system (Socket.io)
- π 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