Live Demo: Coming Soon - Deploy to Vercel
Deployment: See DEPLOYMENT.md for detailed deployment instructions
- About AuthHub
- Features
- Tech Stack
- Screenshots
- Getting Started
- Usage
- API Endpoints
- PDF / Portfolio Export
- Contributing
- Code of Conduct
- License
- Acknowledgments
AuthHub lets anyone sign in via GitHub OAuth, fetches their GitHub repositories, and presents them as a neat dashboard:
- Public repos sorted from most to least starred
- Total stars, top languages chart, and contribution stats
- Ability to pin up to 5 repos for highlighting
- Auto‑generate a PDF portfolio/resume from profile data
Built as a modern tech demonstration of React + Express + TypeScript, AuthHub is ideal for securely showcasing your GitHub work—just like gitforme.tech but customized and extensible.
- GitHub OAuth login to securely authenticate users
- Repo list includes repo name, description, star count, primary language, and last updated
- Star‑based sorting ensures high‑impact repos appear first
- Top Languages chart (pie/bar) showing your most-used languages
- Contribution summary: commits, PRs, issues over the past year
- Repo pinning: select your personal favorites to highlight
- Downloadable PDF version of your public profile
- Mobile‑friendly, dark mode ready, and accessible UI
- React 18 with TypeScript – Modern, type-safe frontend
- Express.js with TypeScript – Fast, scalable backend
- Tailwind CSS with Radix UI for modern styling
- Vite for fast development and optimized builds
- Passport.js for GitHub OAuth session management
- GitHub GraphQL API v4 for real-time data fetching
- Recharts for beautiful charts and data visualization
- Puppeteer for PDF generation from styled HTML
- Drizzle ORM with PostgreSQL (or in-memory for development)
Make sure you have:
- Node.js ≥18 LTS
- A GitHub Developer App (for OAuth credentials)
- (Optional) A PostgreSQL / Supabase / Neon database
git clone https://github.com/d43ash1sh/AuthHub.git
cd AuthHub
npm install Create a .env file at root (do not commit this):
GITHUB_CLIENT_ID=deba123
GITHUB_CLIENT_SECRET=xyz789deba
SESSION_SECRET=long_random_string
DATABASE_URL=postgres://debashishbordoloi:pass@host:5432/dbname # optional npm run dev
# → Visit http://localhost:3000 npm run build
npm run start - Click Sign in with GitHub
- Authorize the OAuth app
- View your repos sorted by star count
- Pin any 1–5 repos to the top
- Click Download PDF to generate a résumé-style PDF
This app uses Express.js API routes:
GET /api/auth/user → Profile info (avatar, bio, followers)
GET /api/github/repositories → Sorted repo list via GraphQL
GET /api/github/profile → GitHub profile data
GET /api/github/pinned → Get pinned repositories
POST /api/github/repositories/:id/pin → Pin or unpin a repo
GET /api/generate-pdf → Generate profile PDF via Puppeteer Click Export PDF to generate a PDF via server-side rendering using Puppeteer. The output includes:
- Profile avatar + bio
- Contribution totals
- Pinned repos (with stars & languages)
- Top Languages chart
- Download button
Want to improve AuthHub? Contributions are welcome!
- Fork the project
- Create your feature branch:
git checkout -b feature/awesome-feature - Commit your changes:
git commit -m 'Add awesome-feature' - Push:
git push origin feature/awesome-feature - Open a pull request
Check out CONTRIBUTING.md for code style rules, issue templates, and CI requirements.
This project follows the Contributor Covenant. Please see CODE_OF_CONDUCT.md in the repo for details.
Distributed under the MIT License. See LICENSE for more details.
- Inspired by [gitforme.tech]
- Based on React + Express + TypeScript Starter
- Thanks to all open‑source developers and platforms that made this possible. 🙌
AuthHub by Debashish Bordoloi
- LinkedIn: linkedin.com/in/debashishbordoloi
- GitHub: @d43ash1sh