Project Recommender analyzes your GitHub repositories to understand your coding interests, tech stack, and past project types. Using this data, it generates fresh, creative project ideas tailored to your experience — helping you find your next great build. Whether you’re looking to improve your portfolio, learn new technologies, or take on a challenge, Project Recommender gives you smart, personalized inspiration based on your own code.
- Connects directly to your GitHub profile
- Analyzes repositories, languages, and topics
- Uses AI to generate unique project ideas
- Suggests both small practice projects and larger portfolio builds
Before you begin, ensure you have the following installed:
- Node.js: A JavaScript runtime environment. Check your Node.js version with
node -v. - npm (Node Package Manager): Usually comes with Node.js. Check the version with
npm -v.
This project depends on the following npm packages:
@google/genaiglobnode-whichopenairimraf
-
Clone the repository:
git clone <https://github.com/CoryPearl/GIG.git> cd GIG
-
Install dependencies:
npm install
Due to the lack of project-specific information, general usage examples are provided. To use the Google Gen AI SDK:
-
Import the SDK:
const { GoogleGenerativeAI } = require('@google/generative-ai'); // or if using ES modules: // import { GoogleGenerativeAI } from '@google/generative-ai';
-
Initialize the API with your API key:
const genAI = new GoogleGenerativeAI(YOUR_API_KEY); // Replace YOUR_API_KEY with your actual API key
Refer to the Google Gen AI JavaScript SDK documentation for detailed information on API usage, models, and parameters.
This project requires several environment variables to be set. Create a .env file in the server-assets/ directory with the following variables:
-
Create a GitHub OAuth App:
- Go to GitHub Settings → Developer settings → OAuth Apps → New OAuth App
- Fill in the application details:
- Application name: Your app name (e.g., "GIG Project Recommender")
- Homepage URL:
http://localhost:3000(or your preferred URL) - Authorization callback URL:
http://YOUR_IP_ADDRESS:3000/callback- Replace
YOUR_IP_ADDRESSwith your local machine's IP address - To find your IP address, run
ifconfig(Mac/Linux) oripconfig(Windows) and look for your IPv4 address - Note: The callback URL must match exactly what the server uses. The server automatically detects your IP and constructs the callback URL as
http://${YOUR_IP}:3000/callback
- Replace
- Click "Register application"
-
Get your GitHub OAuth credentials:
- After creating the OAuth app, you'll receive a Client ID and Client Secret
- Copy these values - you'll need them for your
.envfile
-
Required GitHub Environment Variables:
GITHUB_CLIENT_ID=your_github_client_id_here GITHUB_CLIENT_SECRET=your_github_client_secret_here SESSION_SECRET=your_random_session_secret_here
GITHUB_CLIENT_ID: The Client ID from your GitHub OAuth AppGITHUB_CLIENT_SECRET: The Client Secret from your GitHub OAuth AppSESSION_SECRET: A random string used to encrypt sessions (can be any secure random string)
You'll also need a Google Gemini API key:
GEMINI_API_KEY=your_gemini_api_key_hereExample .env file structure:
Create server-assets/.env with:
GITHUB_CLIENT_ID=abc123def456ghi789
GITHUB_CLIENT_SECRET=xyz789uvw456rst123
SESSION_SECRET=my-super-secret-session-key-12345
GEMINI_API_KEY=your-gemini-api-key-here
Important Notes:
- Never commit your
.envfile to version control - The callback URL in your GitHub OAuth app must match:
http://YOUR_IP_ADDRESS:3000/callback - If your IP address changes, you'll need to update the callback URL in your GitHub OAuth app settings
- The server runs on port 3000 by default and will display your detected IP address in the console when it starts
Contributions are welcome! To contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name - Make your changes and commit them:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Create a new Pull Request.
License information is currently not specified.
This project utilizes the @google/genai package, which is gratefully acknowledged.