Thank you for your interest in contributing! This document provides guidelines and instructions for contributing to this polyglot cybersecurity platform.
- Code of Conduct
- Getting Started
- Development Setup
- Architecture Overview
- Contribution Guidelines
- Pull Request Process
- Testing Requirements
- Code Style
This project adheres to a code of conduct. By participating, you are expected to uphold this code. Please be respectful and constructive in all interactions.
| Component | Version | Purpose |
|---|---|---|
| Docker | 24.0+ | Container runtime |
| Docker Compose | 2.20+ | Local orchestration |
| Go | 1.21+ | Gateway service |
| Python | 3.11+ | Brain service |
| Rust | 1.70+ | Core scanner |
| Node.js | 18+ | Dashboard |
| PostgreSQL | 15+ | Database |
| Redis | 7+ | Caching |
# Clone the repository
git clone https://github.com/csa7mdm/Cypersecurity.git
cd Cypersecurity
# Start all services
docker-compose up -d
# Verify services are running
docker-compose ps
# Run tests
./scripts/run-tests.shcd gateway
go mod download
go build ./cmd/gateway
go test ./...cd brain
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e ".[dev]"
pytestcd core
cargo build
cargo test
cargo clippycd dashboard
npm install
npm run dev
npm test┌─────────────────────────────────────────────────────────┐
│ Dashboard (React) │
├─────────────────────────────────────────────────────────┤
│ Gateway (Go/Gin) │
│ JWT Auth, RBAC, Rate Limiting │
├─────────────────┬───────────────────┬───────────────────┤
│ Brain (Py) │ Core (Rust) │ Database (PG) │
│ AI Analysis │ Fast Scanning │ Multi-tenant │
└─────────────────┴───────────────────┴───────────────────┘
- Bug Fixes: Fix issues reported in GitHub Issues
- Features: Implement features from the roadmap or propose new ones
- Documentation: Improve docs, add examples, fix typos
- Tests: Add missing tests, improve coverage
- Performance: Optimize algorithms, reduce resource usage
| Type | Format | Example |
|---|---|---|
| Feature | feature/description |
feature/add-nmap-scanner |
| Bug Fix | fix/description |
fix/auth-token-expiry |
| Docs | docs/description |
docs/api-examples |
| Refactor | refactor/description |
refactor/scanner-module |
- Fork the repository
- Create a feature branch from
main - Make your changes with clear commit messages
- Add/Update tests for your changes
- Run the full test suite locally
- Update documentation if needed
- Submit a pull request
- Code follows project style guidelines
- Tests pass locally
- New tests added for new features
- Documentation updated
- No security vulnerabilities introduced
- Commits are signed (if required)
| Service | Required Coverage |
|---|---|
| Gateway (Go) | 70% |
| Brain (Python) | 80% |
| Core (Rust) | 70% |
| Dashboard | 60% |
# Unit tests
go test ./...
pytest tests/unit/
cargo test
# Integration tests
pytest tests/integration/
# E2E tests
cd e2e_tests && npx playwright test- Follow Effective Go
- Use
gofmtandgolangci-lint - Maximum line length: 120 characters
- Follow PEP 8
- Use
rufffor linting - Use
mypyfor type checking - Docstrings for public functions
- Follow Rust idioms
- Use
cargo fmtandcargo clippy - Document public APIs
- Follow project ESLint configuration
- Use TypeScript strict mode
- Prefer functional components with hooks
- Open a GitHub Discussion for questions
- Check existing issues before creating new ones
- Join our community chat (if available)
Thank you for contributing!