This project is a GitHub Explorer web application that allows users to search for and compare GitHub profiles, displaying repository information and AI-generated summaries. Below is an overview of the core technologies used:
A React
-based framework that enables server-side rendering, static site generation, and an optimized developer experience for building production-ready web applications.
A utility-first CSS
framework that provides a comprehensive set of classes to rapidly build custom designs without leaving your markup.
A typed superset of JavaScript
that adds static typing and powerful tooling, helping catch errors early and improve maintainability.
A lightweight UI library built on top of Tailwind CSS
. It offers pre-styled components and utility classes, speeding up the design process while maintaining a clean look.
app/compare/[username1]-[username2]/page.tsx
geminiSummary.ts
to generate an AI-driven comparison summary. Profile
and RepoList
in a table layout.app/components/Profile.tsx
app/components/RepoCard.tsx
RepoList.tsx
to render each repo item.app/components/RepoList.tsx
RepoCard
.app/components/SearchForm.tsx
/user/[username]
upon submission.app/user/[username]/page.tsx
geminiSummary.ts
for an AI-generated summary (if desired). Profile
and RepoList
.app/page.tsx
SearchForm
to begin exploring GitHub profiles.app/layout.tsx
app
directory.app/globals.css
lib/geminiSummary.ts
public/favicon.ico
.gitignore
: Lists files and folders to be ignored by Git.next-env.d.ts
: Ensures TypeScript support for Next.js.package.json
: Lists dependencies and scripts for running/building the project.package-lock.json
: Lock file with exact dependency versions.postcss.config.js
: Configures PostCSS for processing CSS (if used).Landing Page (Homepage)
app/page.tsx
. SearchForm
component for entering a single GitHub username.Single-User Search
/user/[username]
(app/user/[username]/page.tsx
). Profile
component displays basic user info (avatar, bio). RepoList
component shows all the user’s repositories.Comparing Two Users
/compare/[username1]/[username2]
(app/compare/[username1]-[username2]/page.tsx
). geminiSummary.ts
module is used to generate an AI-driven summary comparing the two users. Profile
side by side, each with their RepoList
.AI Summaries (Optional)
getSummary
from lib/geminiSummary.ts
. Overall, this structure allows users to:
Feel free to explore the code and customize the styling or logic as needed. Contributions and suggestions are welcome!