First off, thank you for considering contributing to Ingrexa! It's people like you that make open source such a great community. We are thrilled to welcome contributions for GSSoC '26 and beyond.
By participating in this project, you are expected to uphold our code of conduct. Please be respectful, welcoming, and collaborative.
- Fork the repository to your own GitHub account using the "Fork" button at the top right of the repository page.
- Clone the repository to your local machine:
git clone https://github.com/YOUR_USERNAME/Ingrexa.git cd Ingrexa
The backend is built with Python and Django.
- Navigate to the backend directory:
cd backend - Create and activate a virtual environment:
python -m venv venv # On macOS/Linux: source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Environment Variables: We use a
.envfile for configuration and secrets.- Copy the example environment file:
cp .env.example .env
- Note: You do not need real API keys (like OpenAI or Razorpay) for basic local development unless you are explicitly testing those features. The application will use defaults or show clear errors if optional keys are missing.
- 🚨 SECURITY CRITICAL: Never commit your
.envfile or hardcode secrets!
- Copy the example environment file:
- Run database migrations:
python manage.py migrate
- Start the development server:
python manage.py runserver
- Open a new terminal tab/window and navigate to the frontend directory:
cd frontend - Install dependencies:
npm install
- Start the frontend development server:
npm run dev
- Create a Branch: Always create a new branch for your feature, bug fix, or documentation update.
git checkout -b feature/your-feature-name
- Write Clean Code:
- Follow PEP 8 guidelines for Python code.
- Write meaningful, descriptive variable names.
- Add comments only where the code isn't self-explanatory.
- Commit your changes: Write clear, descriptive commit messages indicating what changed and why.
git commit -m "feat: add user profile picture upload"
- Do NOT commit
.envfiles, API keys, or database credentials. - If you discover a security vulnerability, please do NOT create a public GitHub issue. Reach out to the maintainer directly.
- Always use parameterized queries or Django's ORM to prevent SQL injection.
- Push your branch to your forked repository:
git push origin feature/your-feature-name
- Go to the original Ingrexa repository and open a Pull Request (PR) against the
mainbranch. - Provide a clear PR description explaining what your changes do. If it fixes an issue, link the issue (e.g.,
Fixes #12). - Be patient! A maintainer will review your code. You might be asked to make some tweaks before it gets merged.
Thank you for contributing! Let's build something awesome together.