Create CONTRIBUTING.md

This commit is contained in:
Arley Daniel Peter 2025-05-30 14:13:28 -03:00 committed by GitHub
parent 7ff7a1455c
commit 509e03d46d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

141
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,141 @@
# Contributing to Evo AI
We welcome contributions from the community! Please follow the guidelines below to help us maintain a high-quality, consistent, and secure project.
---
## 📋 Prerequisites
- **Backend**: Python 3.10+, PostgreSQL 13+, Redis 6+, Git, Make
- **Frontend**: Node.js 18+, pnpm (recommended), or npm/yarn
---
## 🚀 Setting Up the Development Environment
### 1. Clone the Repository
```bash
git clone https://github.com/EvolutionAPI/evo-ai.git
cd evo-ai
````
### 2. Backend Setup
```bash
make venv
source venv/bin/activate # On Linux/Mac
# Or: venv\Scripts\activate # On Windows
make install-dev
cp .env.example .env
# Edit .env with your local settings
make alembic-upgrade
make seed-all
```
### 3. Frontend Setup
```bash
cd frontend
pnpm install # Or: npm install / yarn install
cp .env.example .env
# Edit .env with your API URL, e.g., NEXT_PUBLIC_API_URL=http://localhost:8000
```
### 4. Running the Application
* **Backend**:
```bash
make run
# Backend: http://localhost:8000
```
* **Frontend**:
```bash
cd frontend
pnpm dev
# Frontend: http://localhost:3000
```
---
## 📝 Issue and Pull Request Guidelines
* **Check for existing issues** before creating a new one.
* **Describe bugs or feature requests** clearly with steps to reproduce (if applicable).
* **Pull Requests** should:
* Reference relevant issues (e.g., `Fixes #123`)
* Focus on one change at a time
* Include tests where applicable
* Pass linting and formatting checks
---
## 🧑‍💻 Code Standards
* **All code comments, docstrings, and log messages must be in English**
* **Variable, function, and class names**: English only
* **API error messages and documentation**: English
* **Commit messages**: English and follow [Conventional Commits](https://www.conventionalcommits.org/)
* Example: `feat(auth): add password reset functionality`
* **Indentation**: 4 spaces
* **Max line length**: 79 characters
---
## 📂 Project Structure and Best Practices
* Follow the directory structure and naming conventions described in `.cursorrules`.
* **Tests** should be placed under `tests/` and follow the `test_*` naming convention.
* All routes require input validation using Pydantic schemas.
* Use transactions for database operations affecting multiple records.
* Document all public functions and classes.
* Keep `.env.example` updated when adding environment variables.
* Sensitive values must be set via environment variables and never hard-coded.
---
## 🐳 Docker Development
* **Build and start stack:**
```bash
make docker-build
make docker-up
```
* **Seed database:**
```bash
make docker-seed
```
* **Stop stack:**
```bash
make docker-down
```
---
## 🔐 Contributor License
By contributing to this repository, you agree that your contributions will be licensed under the [Apache License 2.0](./LICENSE).
---
## 💬 Community and Support
* [WhatsApp Group](https://evolution-api.com/whatsapp)
* [Discord Community](https://evolution-api.com/discord)
* [Official Documentation](https://doc.evolution-api.com)
---
Thank you for contributing to Evo AI!