evo-ai/CONTRIBUTING.md
2025-05-30 14:13:28 -03:00

3.1 KiB

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

git clone https://github.com/EvolutionAPI/evo-ai.git
cd evo-ai

2. Backend Setup

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

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:

    make run
    # Backend: http://localhost:8000
    
  • Frontend:

    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

    • 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:

    make docker-build
    make docker-up
    
  • Seed database:

    make docker-seed
    
  • Stop stack:

    make docker-down
    

🔐 Contributor License

By contributing to this repository, you agree that your contributions will be licensed under the Apache License 2.0.


💬 Community and Support


Thank you for contributing to Evo AI!