# 💻 Development Guide - Cidadão.AI Backend **Author**: Anderson Henrique da Silva **Last Updated**: 2025-10-03 (São Paulo, Brazil) This directory contains comprehensive developer guides and implementation references for contributing to the Cidadão.AI Backend project. ## 📚 Available Guides ### Getting Started - **[CONTRIBUTING.md](./CONTRIBUTING.md)** - Complete contribution guide - Code standards and conventions - Git workflow and commit guidelines - Pull request process - Development environment setup ### Implementation Guides - **[CONVERSATIONAL_AI_IMPLEMENTATION.md](./CONVERSATIONAL_AI_IMPLEMENTATION.md)** - Conversational AI system - Portuguese intent detection - Multi-agent dialogue flow - Context management - Response generation - **[INDEX_CHAT_IMPLEMENTATION.md](./INDEX_CHAT_IMPLEMENTATION.md)** - Chat implementation details - Real-time chat architecture - SSE streaming responses - Message handling patterns - Error recovery strategies - **[maritaca_integration.md](./maritaca_integration.md)** - Maritaca LLM integration - API integration patterns - Optimization techniques - Rate limiting and caching - Cost optimization ### Technical Implementation - **[CORS_CONFIGURATION.md](./CORS_CONFIGURATION.md)** - CORS setup and security - Production-ready CORS configuration - Security best practices - Vercel/HuggingFace deployment specifics - **[CURSOR_PAGINATION_IMPLEMENTATION.md](./CURSOR_PAGINATION_IMPLEMENTATION.md)** - Cursor-based pagination - Efficient pagination for large datasets - Performance optimizations - API design patterns - **[GZIP_COMPRESSION_IMPLEMENTATION.md](./GZIP_COMPRESSION_IMPLEMENTATION.md)** - Response compression - GZIP middleware configuration - Compression strategies - Performance impact analysis - **[FRONTEND_INTEGRATION_GUIDE.md](./FRONTEND_INTEGRATION_GUIDE.md)** - Frontend integration - API client setup - Authentication flow - WebSocket integration - Error handling patterns ### Code Examples - **[examples/](./examples/)** - Working code examples - Integration examples - Agent usage patterns - API client implementations ## 🚀 Quick Start for Developers ### 1. Environment Setup ```bash # Clone the repository git clone https://github.com/anderson-ufrj/cidadao.ai-backend cd cidadao.ai-backend # Install dependencies make install-dev # Copy environment template cp .env.example .env # Edit .env with your configuration ``` ### 2. Run Development Server ```bash # Start backend with hot reload make run-dev # Or directly with Python python -m src.api.app ``` ### 3. Run Tests ```bash # Run all tests with coverage (80% minimum required) make test # Run specific test categories make test-unit # Unit tests only make test-agents # Multi-agent tests make test-integration # Integration tests ``` ### 4. Code Quality Checks ```bash # Format code make format # Lint code make lint # Type checking make type-check # Run all checks make check # Full CI locally make ci ``` ## 📋 Development Workflow ### 1. Before Starting - Read [CONTRIBUTING.md](./CONTRIBUTING.md) - Set up pre-commit hooks (optional but recommended) - Join our communication channels (if available) ### 2. During Development - Follow code standards from CONTRIBUTING.md - Write tests for new features (TDD approach) - Update documentation as you code - Run `make check` frequently ### 3. Before Committing - Run `make ci` to ensure all checks pass - Write descriptive commit messages (conventional commits) - Update relevant documentation - Add tests for new functionality ### 4. Pull Request - Follow PR template guidelines - Ensure CI passes - Request review from maintainers - Address review feedback promptly ## 🏗️ Architecture References For architectural decisions and patterns: - [Architecture Overview](../architecture/README.md) - [Agent System Design](../architecture/AGENT_LAZY_LOADING.md) - [Performance Optimization](../architecture/PERFORMANCE_OPTIMIZATION.md) - [Monitoring & Observability](../architecture/MONITORING_OBSERVABILITY.md) ## 🤖 Agent Development For creating or modifying agents: - [Agent Documentation](../agents/README.md) - [Abaporu (Master Orchestrator)](../agents/abaporu.md) - [Zumbi (Anomaly Detection)](../agents/zumbi.md) - [Agent Status Overview](../planning/AGENT_STATUS_2025.md) ## 🔧 Common Development Tasks ### Adding a New Agent 1. Create agent class in `src/agents/` 2. Register in `src/agents/__init__.py` 3. Add tests in `tests/unit/agents/` 4. Create documentation in `docs/agents/` 5. Update agent status document ### Adding a New API Endpoint 1. Create/update router in `src/api/routers/` 2. Add endpoint to `src/api/app.py` 3. Write integration tests 4. Update API documentation 5. Add to [API_ENDPOINTS_MAP.md](../api/API_ENDPOINTS_MAP.md) ### Performance Optimization 1. Profile the code to identify bottlenecks 2. Implement caching where appropriate 3. Use async/await for I/O operations 4. Add monitoring metrics 5. Document optimizations ## 📊 Testing Strategy - **Unit Tests**: Test individual components in isolation - **Integration Tests**: Test component interactions - **Agent Tests**: Test multi-agent coordination - **Performance Tests**: Benchmark critical paths - **Security Tests**: Validate authentication and authorization Target: **80% code coverage** (enforced in CI) ## 🔒 Security Considerations - Never commit secrets or API keys - Use environment variables for configuration - Follow OWASP security best practices - Validate all user inputs - Implement rate limiting on public endpoints - Keep dependencies updated ## 🐛 Debugging Tips ```python # Enable debug logging for agents import logging logging.getLogger("src.agents").setLevel(logging.DEBUG) # Use pdb for interactive debugging import pdb; pdb.set_trace() # Profile performance from src.core.monitoring import agent_metrics # Metrics automatically collected ``` ## 📖 Additional Resources - [API Documentation](../api/README.md) - [Deployment Guide](../deployment/README.md) - [Troubleshooting](../troubleshooting/) - [Project Roadmap](../planning/ROADMAP_MELHORIAS_2025.md) ## 🤝 Getting Help If you encounter issues: 1. Check [Troubleshooting Guide](../troubleshooting/) 2. Search existing GitHub issues 3. Review relevant documentation 4. Create a new issue with detailed information --- **Happy coding!** 🚀 Remember: Quality over speed. Write tests, document your code, and follow best practices.