GitScope is a full-stack web application that analyzes GitHub profiles and provides actionable recommendations. It includes:
- β Frontend with interactive UI
- β Node.js/Express backend
- β SQLite database
- β Email notifications
- β Contact form management
Download and install from: https://nodejs.org (LTS version recommended)
npm installCopy .env.example to .env and configure:
cp .env.example .envEdit .env with your email credentials:
PORT=3000
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-16-char-app-password
ADMIN_EMAIL=mamididhana145@gmail.comnpm startServer will run on: http://localhost:3000
GitProject/
βββ index.html # Main frontend page
βββ style.css # Styling
βββ script.js # Frontend logic + API calls
βββ server.js # Express backend server
βββ package.json # Node dependencies
βββ github-analyzer.db # SQLite database (auto-created)
βββ .env # Environment variables (create this)
βββ .env.example # Environment template
βββ SETUP.md # Detailed setup guide
βββ README.md # This file
- Enable 2FA: https://myaccount.google.com/security
- Generate App Password: https://myaccount.google.com/apppasswords
- Select: Mail β Windows Computer
- Copy the 16-character password
- Paste into
.envasEMAIL_PASSWORD
- SendGrid: Update nodemailer config in
server.js - AWS SES: Use AWS credentials
- Mailgun: Use Mailgun transport
users table
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT UNIQUE,
email TEXT,
lastAnalyzed TIMESTAMP,
analysisCount INTEGER,
createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);reports table
CREATE TABLE reports (
id INTEGER PRIMARY KEY,
username TEXT,
email TEXT,
score INTEGER,
grade TEXT,
analysisData TEXT,
createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);contacts table
CREATE TABLE contacts (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
subject TEXT,
message TEXT,
status TEXT DEFAULT 'unread',
createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);POST /api/save-report
Content-Type: application/json
{
"username": "octocat",
"email": "user@example.com",
"score": 85,
"grade": "B",
"analysisData": { /* analysis object */ }
}
Response:
{
"success": true,
"message": "Detailed report sent to user@example.com",
"reportId": 1
}
POST /api/contact
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"subject": "Support Request",
"message": "Need help with my profile"
}
Response:
{
"success": true,
"message": "Message saved. We will respond within 24 hours."
}
GET /api/user/:email
Response:
[
{
"id": 1,
"username": "octocat",
"email": "user@example.com",
"score": 85,
"grade": "B",
"createdAt": "2026-02-25 10:30:00"
}
]
GET /api/contacts
Response:
[
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"subject": "Support",
"message": "Help me...",
"status": "unread",
"createdAt": "2026-02-25 10:30:00"
}
]
The frontend automatically sends reports to the backend when users click "Get My Free Detailed Report".
const API_URL = 'http://localhost:3000'; // Change for production
let currentUsername = '';
let currentScore = 0;
let currentGrade = '';
let currentAnalysisData = {};async function subscribeReport() {
const email = document.getElementById('reportEmail')?.value;
const response = await fetch(`${API_URL}/api/save-report`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: currentUsername,
email: email,
score: currentScore,
grade: currentGrade,
analysisData: currentAnalysisData
})
});
const result = await response.json();
alert(result.message);
}-
Install Heroku CLI: https://devcenter.heroku.com/articles/heroku-cli
-
Login to Heroku
heroku login- Create App
heroku create github-analyzer- Set Environment Variables
heroku config:set EMAIL_USER=your-email@gmail.com
heroku config:set EMAIL_PASSWORD=your-app-password
heroku config:set ADMIN_EMAIL=admin@gmail.com- Deploy
git push heroku main- View Logs
heroku logs --tail- Connect GitHub repo to Railway
- Set environment variables in dashboard
- Deploy automatically
- Render.com: Similar to Railway
- Fly.io: Docker-based deployment
- AWS: EC2 + RDS database
- β Verify
.envconfiguration - β Check Gmail App Password is correct
- β Ensure 2FA is enabled on Gmail
- β Check server logs:
npm start
- β Delete
github-analyzer.dband restart - β Verify SQLite3 is installed:
npm ls sqlite3
- β Change PORT in
.envto 3001, 3002, etc. - β Kill existing process:
lsof -i :3000
- β Ensure CORS is enabled in
server.js - β Update
API_URLinscript.jsfor production
Email: mamididhana145@gmail.com
GitHub: Your repository
Issues: Use project's issue tracker
MIT License - See LICENSE file for details
- β Analyze GitHub profiles instantly
- β Get personalized recommendations
- β Receive detailed reports via email
- β Track analysis history
- β Contact form with notifications
- β Dark/Light theme support
- β Responsive design
- β Secure data handling
- β Fast database queries
- β Email management system
npm updatenpm audit
npm audit fixcp github-analyzer.db github-analyzer.backup.dbLast Updated: February 25, 2026