Thank you for your interest in contributing to VishwaGuru!
This guide will help you set up the project locally and contribute effectively.
Ensure you have the following installed:
- Python 3.12+
- Node.js 20+ and npm
- Git
- Telegram Bot Token (from @BotFather)
- Google Gemini API Key
Fork the repository from GitHub and clone it locally.
git clone https://github.com/YOUR_USERNAME/VishwaGuru.git
cd VishwaGuruAdd the main repository as upstream to keep your fork updated.
git remote add upstream https://github.com/RohanExploit/VishwaGuru.git
git fetch upstreamCreate a Python virtual environment and activate it.
python -m venv venvWindows
venv\Scripts\activateLinux/Mac
source venv/bin/activateInstall required Python packages.
pip install -r requirements.txtInstall required Node.js packages.
npm installCreate a .env file in the root directory and add your API keys.
⚠️ Never commit your.envfile.
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
GEMINI_API_KEY=your_gemini_api_key_hereRun backend and frontend services.
Backend
python main.pyFrontend
npm run devCreate a new branch before starting work.
git checkout -b feature/your-feature-nameTest your changes before pushing.
Use meaningful commit messages.
Examples:
feat: add chatbot UIfix: resolve telegram webhook bugdocs: update contributing guide
git commit -m "feat: add Gemini API integration"Keep your fork updated before opening a PR.
git fetch upstream
git merge upstream/main- Push your branch to your fork.
- Open a Pull Request against
mainbranch. - Describe your changes clearly.
- Attach screenshots if UI changes are made.
git push origin feature/your-feature-nameInclude:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots or logs
- Follow PEP8 for Python
- Write clean and readable code
- Add comments for complex logic
- Use meaningful variable names
Be respectful and welcoming to all contributors.
Open an issue or discussion here:
https://github.com/RohanExploit/VishwaGuru