Thank you for your interest in contributing to the Podcast Marketing Automation SaaS platform! This guide will help you get started with contributing to the project.
- Introduction
- Setting Up the Development Environment
- Coding Standards
- Submitting Issues
- Submitting Pull Requests
- Testing
- CI/CD Pipeline
We welcome contributions from the community to help improve and enhance the Podcast Marketing Automation platform. Whether you're fixing bugs, adding new features, or improving documentation, your help is appreciated.
-
Clone the Repository
git clone <repository-url> cd podcast-marketing-automation
-
Backend Setup
cd src/backend # Create and activate virtual environment python -m venv venv source venv/bin/activate # Linux/Mac # venv\Scripts\activate # Windows # Install dependencies pip install -r requirements.txt # Set up environment variables cp .env.example .env # Edit .env with your configuration
-
Frontend Setup
cd src/web # Install dependencies npm install # Set up environment variables cp .env.example .env # Edit .env with your configuration
-
Start Development Servers
# Backend cd src/backend ./scripts/start-dev.sh # Frontend cd src/web npm run dev
We follow strict coding standards to maintain code quality and consistency:
- Follow PEP 8 style guide
- Use type hints for function parameters and return values
- Write docstrings for all modules, classes, and functions
- Maintain test coverage above 80%
- Follow ESLint and Prettier configurations
- Use TypeScript for type safety
- Follow React best practices and hooks guidelines
- Write unit tests for components and utilities
- Write clear, descriptive commit messages
- Keep functions and methods focused and concise
- Document complex logic and business rules
- Add comments for requirements being addressed
When submitting issues, please use the following templates:
**Description**
A clear description of the bug
**Steps to Reproduce**
1. Step 1
2. Step 2
3. Step 3
**Expected Behavior**
What should happen
**Actual Behavior**
What actually happens
**Environment**
- OS:
- Browser:
- Version:
**Additional Context**
Any other relevant information
-
Create a new branch from
development
:git checkout -b feature/your-feature-name
-
Make your changes following our coding standards
-
Write or update tests as needed
-
Run the test suite:
# Backend cd src/backend ./scripts/run-tests.sh # Frontend cd src/web npm run test
-
Submit a pull request with the following information:
- Clear description of changes
- Link to related issue(s)
- Screenshots for UI changes
- List of requirements addressed
- Testing steps and results
- Code follows project style guidelines
- Tests added/updated and passing
- Documentation updated
- No new linting errors
- Verified in development environment
- Requirements properly addressed
- No merge conflicts
We maintain comprehensive test coverage for both backend and frontend:
- Use pytest for unit and integration tests
- Maintain test coverage above 80%
- Run tests using
./scripts/run-tests.sh
- Use Jest and React Testing Library
- Write unit tests for components and utilities
- Test responsive design and accessibility
- Run tests using
npm run test
Our CI/CD pipeline automatically runs on all pull requests:
- Linting with flake8
- Type checking with mypy
- Unit tests with pytest
- Coverage reporting
- ESLint checks
- TypeScript compilation
- Unit tests with Jest
- Build verification
All checks must pass before a pull request can be merged.