Thank you for your interest in contributing to GitVerse Next.js! GitVerse is an AI-powered repository analyzer and assistant. We want to make contributing to this project as easy and transparent as possible.
By following these guidelines, you help keep the codebase clean, stable, and maintainable for everyone.
We expect all contributors to adhere to a professional, respectful, and inclusive environment. Please be supportive, patient, and constructive in all communication and code reviews.
We use a structured branch naming convention. Before you start writing code, make sure to create a branch from the main branch named according to the type of work you are doing:
| Branch Prefix | Purpose | Example |
|---|---|---|
feature/ |
New features, enhancements, or additions | feature/ai-chat-history |
bugfix/ |
Fixing a bug or unexpected behavior | bugfix/login-error-toast |
refactor/ |
Code structure changes with no new features/fixes | refactor/api-response-types |
docs/ |
Updates or additions to documentation | docs/contributing-guide |
chore/ |
Maintenance tasks, library upgrades, configuration changes | chore/upgrade-prisma |
To set up GitVerse Next.js locally, follow these steps:
Ensure you have the following installed on your system:
- Node.js: Version 18 or newer (version 22.x recommended)
- Git: For version control
- PostgreSQL: Local instance or a remote database (Neon DB recommended)
Fork the repository on GitHub, then clone your fork or the upstream repository locally:
git clone https://github.com/<your-username>/gitverse-nextjs.git
cd gitverse-nextjsInstall all required package dependencies:
npm installCreate a local environment file by copying the example template:
cp .env.example .env.localEdit .env.local and configure your credentials:
DATABASE_URL: Your PostgreSQL connection string.JWT_SECRET: A secure, random string used for local JWT sessions.GEMINI_API_KEY: Obtain this from Google MakerSuite to enable AI Assistant features.NEXTAUTH_SECRETandNEXTAUTH_URL: For session authentication.
Important
Always copy .env.local to .env as well so that the Prisma CLI can read your database connection:
cp .env.local .envInitialize your database and generate the Prisma Client:
# Generate the type-safe Prisma client
npm run prisma:generate
# Apply migrations to your database
npm run prisma:migrateStart the Next.js development server:
npm run devOpen http://localhost:3000 to view the application in action.
We enforce a professional commit message style based on the Conventional Commits standard. This structure makes our project git history clean, readable, and easy to parse automatically.
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
feat: A new feature or enhancementfix: A bug fixdocs: Documentation changes onlystyle: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools and libraries
- New feature:
feat(ai): add history logs to repository chatbot dashboard - Bugfix:
fix(auth): redirect user to login on token expiration - Documentation:
docs(readme): update environment setup instructions
Issues opened in this repository are automatically labeled from keyword matches in the issue title and body.
Current supported categories include gssoc-2026, bug, feature, documentation, ui, and infra.
To add or adjust patterns, edit .github/workflows/auto-label.yml and update the labelRules list. Keep the label names in sync with the labels used in GitHub so the workflow can apply them consistently.
Before pushing your changes and opening a Pull Request, please ensure you perform the following checks locally:
Format your code using Prettier:
npm run formatVerify there are no syntax or pattern warnings from ESLint:
npm run lintMake sure your TypeScript changes compile successfully:
npm run typecheck- Commit and Push: Commit your changes using a Conventional Commit message, and push your branch:
git push origin feature/your-feature-name
- Open a PR: Go to the GitHub repository and click "Compare & pull request".
- Describe Your Changes:
- Provide a clear explanation of what you changed and why.
- Link any related issues using
Fixes #<issue-number>.
- Await Review: Core maintainers will review your changes, offer feedback, and merge once all criteria are met.
Thank you again for contributing and helping make GitVerse Next.js awesome! 🚀