The Startup Metrics Benchmarking Platform is a web-based solution designed to provide founders and executives with comprehensive benchmark data across key startup metrics. We welcome contributions that help improve the platform's functionality, security, and user experience.
Your contributions help build a more robust and valuable tool for the startup ecosystem. Whether it's fixing bugs, adding features, improving documentation, or suggesting enhancements, all contributions are valuable.
Please read and follow our Code of Conduct. We expect all contributors to adhere to these guidelines to maintain a positive and inclusive community.
- Fork the repository
- Set up your development environment
- Make your changes
- Submit a pull request
- Node.js 18 LTS
- PostgreSQL 13+
- Redis 6+
- Docker 20+
- VS Code (recommended)
- Git 2.x+
- Clone your forked repository:
git clone https://github.com/your-username/startup-metrics-platform.git
cd startup-metrics-platform
- Install dependencies:
# Backend dependencies
cd src/backend
npm install
# Frontend dependencies
cd ../web
npm install
- Configure environment variables:
cp .env.example .env
# Edit .env with your local configuration
- Start development services:
docker-compose up -d # Starts PostgreSQL and Redis
npm run dev # Starts development servers
- Use environment variables for configuration
- Never commit sensitive data or credentials
- Follow the provided
.env.example
template - Use separate configurations for development and testing
- Strict mode enabled
- Explicit return types on functions
- Interface-first approach
- Proper error handling with custom types
- Use project's
.eslintrc
configuration - Run linting before commits:
npm run lint
- Feature-based directory structure
- Clear separation of concerns
- Single responsibility principle
- Dependency injection pattern
- PascalCase for classes and interfaces
- camelCase for variables and functions
- UPPER_CASE for constants
- kebab-case for file names
- Create feature branch from
develop
- Make atomic commits
- Push changes to your fork
- Submit pull request to
develop
- feature/feature-name
- bugfix/bug-description
- hotfix/issue-description
- release/version-number
type(scope): description
[optional body]
[optional footer]
Types: feat, fix, docs, style, refactor, test, chore
- Jest for testing framework
- 80% minimum coverage requirement
- Run tests:
npm run test
- Supertest for API testing
- End-to-end scenarios
- Database integration tests
- Run integration tests:
npm run test:integration
- OWASP dependency check
- Snyk vulnerability scanning
- SonarQube code analysis
- Run security checks:
npm run security-check
- Input validation
- Output encoding
- Proper error handling
- Secure session management
- Rate limiting implementation
- Regular dependency updates
- Security audits:
npm audit
- Lock file maintenance
- Version pinning
- JSDoc comments for functions
- Interface documentation
- Complex logic explanation
- Update README.md when needed
- OpenAPI/Swagger specifications
- Request/response examples
- Error scenarios
- Authentication details
- Use provided PR template
- Fill all required sections
- Link related issues
- Add necessary labels
- Two approving reviews required
- All comments addressed
- CI checks passing
- Security review for sensitive changes
- Build verification
- Test suite passing
- Code coverage requirements
- Security scan results
- Linting compliance
- Project maintainers: [email protected]
- Security issues: [email protected]
- General questions: [email protected]
- GitHub Issues
- Development Slack channel
- Technical documentation
- Community forums
By contributing, you agree that your contributions will be licensed under the project's license.