https://github.com/happyhackingspace/githubmon
https://github.com/happyhackingspace/githubmon
hacktoberfest
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/happyhackingspace/githubmon
- Owner: HappyHackingSpace
- Created: 2025-07-01T12:36:12.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-08-08T15:03:58.000Z (10 months ago)
- Last Synced: 2025-08-08T15:32:21.611Z (10 months ago)
- Topics: hacktoberfest
- Language: TypeScript
- Homepage:
- Size: 620 KB
- Stars: 3
- Watchers: 0
- Forks: 4
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GitHubMon
A powerful platform to analyze GitHub organizations, trending repositories, top contributors, and more.
Easily search for repositories, users, and organizations with advanced analytics and a user-friendly interface.
## Features
- 🔍 Fast search for repositories, users, and organizations
- 📊 Organization analytics and statistics
- 🏆 Trending repositories and top contributors
- 🌗 Light/Dark theme support
- 📝 Personal Access Token login for higher API rate limits
- 🕒 Search history and recent searches
- ⚡ Dashboard and customizable settings
## Getting Started
### Prerequisites
- [Node.js](https://nodejs.org/) (v16 or higher recommended)
- npm, yarn, pnpm, or bun
### Installation
1. Clone the repository:
```sh
git clone https://github.com/your-username/githubmon.git
cd githubmon
```
2. Install dependencies:
```sh
npm install
# or
yarn install
# or
pnpm install
# or
bun install
```
3. Set up environment variables:
```sh
cp .env.example .env.local
```
Edit `.env.local` and fill in the required values:
- `GITHUB_CLIENT_ID` - Your GitHub OAuth App Client ID
- `GITHUB_CLIENT_SECRET` - Your GitHub OAuth App Client Secret
- `NEXTAUTH_SECRET` - A random secret for NextAuth.js
- `NEXTAUTH_URL` - Your application URL (http://localhost:3000 for development)
4. Start the development server:
```sh
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
5. Open [http://localhost:3000](http://localhost:3000) in your browser.
### Environment Variables Setup
This application requires GitHub OAuth for authentication. Follow these steps:
#### 1. Create a GitHub OAuth App
1. Go to [GitHub Developer Settings](https://github.com/settings/applications/new)
2. Create a new OAuth App with these settings:
- **Application name**: GitHubMon (or your preferred name)
- **Homepage URL**: `http://localhost:3000` (for development)
- **Application description**: Optional description
- **Authorization callback URL**: `http://localhost:3000/api/auth/callback/github`
3. After creating the app, copy the **Client ID** and **Client Secret**
#### 2. Configure Environment Variables
Copy `.env.example` to `.env.local` and update the values:
```bash
# Required - Get these from your GitHub OAuth App
GITHUB_CLIENT_ID=your_github_client_id_here
GITHUB_CLIENT_SECRET=your_github_client_secret_here
# Required - Generate a random secret
NEXTAUTH_SECRET=your_random_secret_here
# Required - Your app URL
NEXTAUTH_URL=http://localhost:3000
```
To generate a secure `NEXTAUTH_SECRET`, you can use:
```bash
openssl rand -base64 32
```
#### 3. OAuth Scopes
The application requests these minimal GitHub scopes:
- `read:user` - Read basic user profile information
- `user:email` - Access user email addresses
- `public_repo` - Read-only access to public repositories
These scopes follow the principle of least privilege and provide secure access without unnecessary permissions.
## Usage
- You can use the app without a GitHub token, but rate limits will be low (60 requests/hour).
- For full features and higher limits (5,000 requests/hour), log in with your [GitHub Personal Access Token](https://github.com/settings/tokens).
- To generate a token:
1. Go to GitHub → Settings → Developer settings → Personal access tokens
2. Click "Generate new token (classic)"
3. Select required scopes (e.g., `repo`, `user`)
4. Copy and save your token securely
## Settings
- Change organization/user name and token anytime from the Settings page.
- Switch between light and dark themes.
- Clear all local data with one click.
## Security
- Your token is stored only in your browser (local storage).
- It is never sent to any server.
- Tokens are automatically deleted after 1 month.
- You can log out anytime.
## Contributing
Contributions are welcome! Please open an issue or submit a pull request.
## License
MIT