# Frontend dependencies
npm install
# Backend dependencies
npm run server:install- Go to GitHub Settings → Developer settings → OAuth Apps
- Or visit: https://github.com/settings/developers
- Click "New OAuth App"
- Fill in the details:
- Application name:
DevHood Local Dev - Homepage URL:
http://localhost:5173 - Application description:
DevHood profile claiming - local development - Authorization callback URL:
http://localhost:5173/auth/github/callback
- Application name:
- Click "Register application"
- Copy the Client ID and Client Secret
- Go to GitLab Settings → Applications
- Fill in the details:
- Name:
DevHood Local Dev - Redirect URI:
http://localhost:5173/auth/gitlab/callback - Scopes: Check
read_userandread_api
- Name:
- Click "Save application"
- Copy the Application ID and Secret
Edit .env file and replace the placeholder values:
# OAuth Configuration for Backend
CLIENT_URL=http://localhost:5173
GITHUB_CLIENT_ID=your_actual_github_client_id_here
GITHUB_CLIENT_SECRET=your_actual_github_client_secret_here
GITLAB_CLIENT_ID=your_actual_gitlab_client_id_here
GITLAB_CLIENT_SECRET=your_actual_gitlab_client_secret_here# Option 1: Start both servers together
npm run full:dev
# Option 2: Start separately (in different terminals)
npm run server:dev # Backend on :3001
npm run dev # Frontend on :5173- Open http://localhost:5173
- Enter any GitHub username (e.g.,
octocat) - Click "Claim This Profile"
- Try the GitHub authentication
- Make sure your GitHub OAuth app is created
- Check that
GITHUB_CLIENT_IDis set correctly in.env - Verify the callback URL matches:
http://localhost:5173/auth/github/callback
- Make sure backend is running on port 3001
- Check
VITE_API_URL=http://localhost:3001/apiin.env
- GitHub callback URL:
http://localhost:5173/auth/github/callback - GitLab callback URL:
http://localhost:5173/auth/gitlab/callback
Backend API (http://localhost:3001/api)
GET /auth/github/url/:username- Get GitHub OAuth URLPOST /auth/github/connect- Exchange GitHub code for tokenGET /auth/gitlab/url/:username- Get GitLab OAuth URLPOST /auth/gitlab/connect- Exchange GitLab code for tokenPOST /profile/claim/:username- Claim a profileGET /profile/status/:username- Get profile statusGET /assets/card/:username/:format- Generate profile cardsGET /assets/graph/:username/:format- Generate contribution graphsGET /assets/stats/:username/:format- Generate stats widgets
# Test backend health
curl http://localhost:3001/api/health
# Test GitHub OAuth URL generation
curl http://localhost:3001/api/auth/github/url/testuserDevHood/
├── src/ # Vue.js frontend
│ ├── views/
│ │ └── ClaimProfilePage.vue
│ ├── components/
│ │ ├── ProfileCustomization.vue
│ │ └── ProfileAssetGenerator.vue
│ └── services/
│ └── api.ts # Backend API service
├── server/ # Node.js backend
│ ├── routes/
│ │ ├── auth.js # OAuth handling
│ │ ├── profile.js # Profile management
│ │ └── assets.js # Asset generation
│ └── server.js # Express server
└── .env # Environment variables