├── .env.example
├── public
├── _redirects
├── crl.png
├── crl-icon.png
└── vite.svg
├── backend
├── .dockerignore
├── .env.sample
├── Dockerfile.dev
├── Dockerfile.prod
├── package.json
├── models
│ └── User.js
├── server.js
├── routes
│ └── auth.js
└── config
│ └── passportConfig.js
├── .dockerignore
├── postcss.config.cjs
├── tsconfig.json
├── vite.config.ts
├── Dockerfile.dev
├── src
├── utils
│ └── constants.ts
├── vite-env.d.ts
├── index.css
├── pages
│ ├── Home
│ │ └── Home.tsx
│ ├── ContributorProfile
│ │ └── ContributorProfile.tsx
│ ├── About
│ │ └── About.tsx
│ ├── Contributors
│ │ └── Contributors.tsx
│ ├── Signup
│ │ └── Signup.tsx
│ ├── Login
│ │ └── Login.tsx
│ ├── Tracker
│ │ └── Tracker.tsx
│ └── Contact
│ │ └── Contact.tsx
├── main.tsx
├── hooks
│ ├── useGitHubAuth.ts
│ └── useGitHubData.ts
├── App.css
├── Routes
│ └── Router.tsx
├── App.tsx
├── context
│ └── ThemeContext.tsx
├── components
│ ├── Footer.tsx
│ ├── Hero.tsx
│ ├── HowItWorks.tsx
│ ├── ScrollProgressBar.tsx
│ ├── Features.tsx
│ └── Navbar.tsx
└── assets
│ └── react.svg
├── spec
├── support
│ └── jasmine.mjs
├── user.model.spec.cjs
└── auth.routes.spec.cjs
├── tailwind.config.js
├── .github
├── pull_request_template.md
├── workflows
│ ├── greetings.yml
│ ├── auto-label-gssoc.yml
│ ├── auto-assign-issue.yml
│ ├── post-pr-thankyou.yml
│ └── unassign-stale-issues.yml
└── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ └── feature_request.yml
├── index.html
├── tsconfig.node.json
├── tsconfig.app.json
├── eslint.config.js
├── LICENSE
├── Dockerfile.prod
├── docker-compose.yml
├── CODE_OF_CONDUCT.md
├── package.json
├── .gitignore
├── CONTRIBUTING.md
└── README.md
/.env.example:
--------------------------------------------------------------------------------
1 | VITE_BACKEND_URL=http://localhost:5000
--------------------------------------------------------------------------------
/public/_redirects:
--------------------------------------------------------------------------------
1 | /* /index.html 200
2 |
3 |
--------------------------------------------------------------------------------
/backend/.dockerignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .gitignore
3 | .git
4 | .env.*
5 | yarn.lock
--------------------------------------------------------------------------------
/public/crl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GitMetricsLab/github_tracker/HEAD/public/crl.png
--------------------------------------------------------------------------------
/public/crl-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GitMetricsLab/github_tracker/HEAD/public/crl-icon.png
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | backend
2 | node_modules
3 | dist
4 | build
5 | .gitignore
6 | .git
7 | .env.*
8 | .github
9 | yarn.lock
--------------------------------------------------------------------------------
/backend/.env.sample:
--------------------------------------------------------------------------------
1 | PORT=5000
2 | MONGO_URI=mongodb://localhost:27017/githubTracker
3 | SESSION_SECRET=your-secret-key
4 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vite.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | })
8 |
--------------------------------------------------------------------------------
/Dockerfile.dev:
--------------------------------------------------------------------------------
1 | FROM node:20-alpine
2 |
3 | WORKDIR /app
4 |
5 |
6 | COPY package.json .
7 |
8 | RUN npm install
9 |
10 | COPY . .
11 |
12 | EXPOSE 5173
13 |
14 | CMD ["npm","run","dev"]
15 |
--------------------------------------------------------------------------------
/src/utils/constants.ts:
--------------------------------------------------------------------------------
1 | export const GITHUB_REPO_API_BASE = "https://api.github.com/repos/GitMetricsLab/github_tracker";
2 |
3 | // endpoints:
4 | export const GITHUB_REPO_CONTRIBUTORS_URL = `${GITHUB_REPO_API_BASE}/contributors`;
5 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
14 | Monitor and analyze GitHub user activity with powerful insights. Perfect for developers, 15 | project managers, and teams who want to understand contribution patterns and repository engagement. 16 |
17 |27 | Get started in minutes with our simple three-step process 28 |
29 |39 | {step.description} 40 |
41 |{profile.bio}
63 | 69 |No pull requests found for this user.
92 | )} 93 |55 | Everything you need to track, analyze, and understand GitHub activity patterns 56 |
57 |69 | {feature.description} 70 |
71 |56 | We aim to provide an efficient and user-friendly way to track GitHub issues and pull requests. 57 | Our goal is to make it easy for developers to stay organized and focused on their projects 58 | without getting bogged down by the details. 59 |
60 |{feature.description}
79 |
9 |
10 |
| 🌟 Stars | 15 |🍴 Forks | 16 |🐛 Issues | 17 |🔔 Open PRs | 18 |🔕 Close PRs | 19 |
139 | 140 | ⬆️ Back to Top 141 | 142 |
143 | -------------------------------------------------------------------------------- /src/pages/Contributors/Contributors.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { 3 | Container, 4 | Grid, 5 | Card, 6 | CardContent, 7 | Avatar, 8 | Typography, 9 | Button, 10 | Box, 11 | CircularProgress, 12 | Alert, 13 | } from "@mui/material"; 14 | import { FaGithub } from "react-icons/fa"; 15 | import { Link } from "react-router-dom"; 16 | import axios from "axios"; 17 | import { GITHUB_REPO_CONTRIBUTORS_URL } from "../../utils/constants"; 18 | 19 | interface Contributor { 20 | id: number; 21 | login: string; 22 | avatar_url: string; 23 | contributions: number; 24 | html_url: string; 25 | } 26 | 27 | const ContributorsPage = () => { 28 | const [contributors, setContributors] = useStateJoin your GitHub journey
76 |148 | Already have an account?{' '} 149 | 150 | 153 | 154 |
155 |77 | Track your GitHub journey 78 |
79 |145 | Don't have an account? 146 | 150 | Sign up here 151 | 152 |
153 |80 | Get in touch with us to discuss your project tracking needs or 81 | report any issues 82 |
83 |101 | We're here to help you track and manage your GitHub 102 | repositories more effectively 103 |
104 |171 | {detail} 172 |
173 |180 | {sub} 181 |
182 |