ccf4cd8c8f
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
129 lines
3.7 KiB
Markdown
129 lines
3.7 KiB
Markdown
# Contributing to DocuElevate
|
|
|
|
Thank you for your interest in contributing to DocuElevate! This document provides guidelines and instructions for contributing to the project.
|
|
|
|
## Code of Conduct
|
|
|
|
By participating in this project, you agree to abide by the [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
|
|
## How to Contribute
|
|
|
|
### Reporting Bugs
|
|
|
|
If you find a bug in the codebase, please submit an issue on GitHub with:
|
|
|
|
1. A clear title and description
|
|
2. Steps to reproduce the issue
|
|
3. Expected behavior
|
|
4. Actual behavior
|
|
5. Environment information (OS, Docker version, etc.)
|
|
|
|
### Feature Requests
|
|
|
|
We welcome feature requests! Please submit an issue with:
|
|
|
|
1. A clear title and description
|
|
2. The problem the feature would solve
|
|
3. Any ideas you have for implementing the feature
|
|
|
|
### Pull Requests
|
|
|
|
1. Fork the repository
|
|
2. Create a new branch for your changes
|
|
3. Make your changes
|
|
4. Run the tests to ensure everything works
|
|
5. Submit a pull request with a clear description of the changes
|
|
|
|
## Development Environment
|
|
|
|
### Setting Up Your Environment
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/christianlouis/document-processor.git
|
|
cd document-processor
|
|
|
|
# Create a virtual environment
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
|
|
# Install dependencies
|
|
pip install -r requirements.txt
|
|
pip install -r requirements-dev.txt
|
|
```
|
|
|
|
### Running Tests
|
|
|
|
```bash
|
|
pytest
|
|
```
|
|
|
|
### Code Style
|
|
|
|
We use:
|
|
- Black for Python code formatting
|
|
- Flake8 for linting
|
|
- isort for import sorting
|
|
|
|
```bash
|
|
# Format code
|
|
black .
|
|
|
|
# Check linting
|
|
flake8
|
|
|
|
# Sort imports
|
|
isort .
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
DocuElevate/
|
|
├── app/ # Main application code
|
|
│ ├── api/ # REST API endpoints (organized by feature)
|
|
│ ├── tasks/ # Celery background tasks
|
|
│ ├── views/ # UI routes and template rendering
|
|
│ ├── utils/ # Utility functions and helpers
|
|
│ ├── config.py # Configuration management (Pydantic)
|
|
│ ├── database.py # Database setup and session management
|
|
│ ├── models.py # SQLAlchemy models
|
|
│ ├── main.py # FastAPI app initialization
|
|
│ └── auth.py # Authentication logic
|
|
├── frontend/ # Frontend assets
|
|
│ ├── static/ # CSS, JavaScript, images
|
|
│ └── templates/ # Jinja2 HTML templates
|
|
├── tests/ # Test suite
|
|
├── docs/ # User and developer documentation
|
|
├── migrations/ # Alembic database migrations
|
|
└── docker/ # Docker configuration files
|
|
```
|
|
|
|
## 📚 Additional Resources
|
|
|
|
### Documentation
|
|
- **[AGENTIC_CODING.md](AGENTIC_CODING.md)** - Comprehensive guide for AI agents and developers
|
|
- **[README.md](README.md)** - Project overview and quickstart
|
|
- **[ROADMAP.md](ROADMAP.md)** - Future features and long-term vision
|
|
- **[MILESTONES.md](MILESTONES.md)** - Release planning and versioning
|
|
- **[TODO.md](TODO.md)** - Current tasks and priorities
|
|
- **[SECURITY.md](SECURITY.md)** - Security policy
|
|
- **[SECURITY_AUDIT.md](SECURITY_AUDIT.md)** - Security findings and improvements
|
|
|
|
### Testing
|
|
- All new features must include tests
|
|
- Aim for 80% code coverage
|
|
- See [AGENTIC_CODING.md#testing-strategy](AGENTIC_CODING.md#testing-strategy) for detailed testing guidelines
|
|
|
|
### Security
|
|
- Never commit secrets or credentials
|
|
- Follow guidelines in [SECURITY_AUDIT.md](SECURITY_AUDIT.md)
|
|
- Report security issues per [SECURITY.md](SECURITY.md)
|
|
|
|
## 🤝 Getting Help
|
|
|
|
- **GitHub Issues:** Bug reports and feature requests
|
|
- **GitHub Discussions:** Questions and community support
|
|
- **Documentation:** Check `docs/` directory for guides
|
|
|
|
Thank you for contributing to DocuElevate! |