Plateforme d'analyse de sentiments crypto avec infrastructure AWS modulaire, pipeline CI/CD sécurisé, et architecture DataOps automatisée - 100% gratuit, 100% production-ready.
CryptoSentiment est une plateforme d’analyse 100 % gratuite qui combine :
- 📈 Prix de cryptomonnaies via [CoinGecko API]
- 📰 Actualités crypto via [NewsAPI]
- 💬 Analyse de sentiment via [Hugging Face Inference API]
Le projet illustre un pipeline complet de Data Engineering : collecte → validation → stockage → visualisation.
Ce projet démontre la maîtrise complète du cycle de vie DataOps :
- Architecture modulaire avec 4 modules réutilisables (S3, DynamoDB, SNS, IAM)
- Configuration sécurisée par défaut (encryption, least privilege, public access block)
- Backend distant avec state locking (S3 + DynamoDB)
- Réduction de 36% du code grâce à la modularisation (145 → 93 lignes)
- Pipeline automatisé avec GitHub Actions (format, validate, tfsec, checkov)
- Authentification OIDC sans clés (zero-trust security)
- Scans de sécurité avec tfsec (100+ règles AWS) et Checkov
- Résultats SARIF uploadés dans l'onglet Security de GitHub
- Scripts de validation locale pour Windows et Unix/Linux
- Orchestration avec Apache Airflow (Docker)
- Validation de qualité avec Great Expectations
- Architecture Lambda : Data Lake (S3) + Serving Layer (DynamoDB)
- Système d'alertes automatisé (SNS)
- AWS Free Tier uniquement
- GitHub Actions gratuit (repo public)
- Tous les outils open-source
infrastructure/
├── modules/
│ ├── s3_datalake/ # Data Lake avec lifecycle & encryption
│ ├── dynamodb_timeseries/ # Serving layer avec TTL & server-side encryption
│ ├── sns_alerts/ # Système d'alertes email/SMS
│ └── iam_app_policy/ # Politiques IAM least privilege
└── terraform/
├── main.tf # Orchestration des modules (93 lignes)
├── .tfsec.yml # Configuration sécurité (HIGH severity)
└── Makefile.ps1 # Scripts validation Windows
| Domaine | Technologie | Points Clés |
|---|---|---|
| IaC | Terraform 1.8.0 | 4 modules réutilisables, backend distant S3+DynamoDB, variables par environnement |
| Cloud | AWS Free Tier | S3 (Data Lake), DynamoDB (Serving), SNS (Alerts), IAM (OIDC) |
| Security | tfsec + Checkov | 100+ règles AWS, scans automatiques, SARIF reports, encryption par défaut |
| CI/CD | GitHub Actions | OIDC auth, validation automatique, blocking sur erreurs critiques |
| Orchestration | Apache Airflow | Docker Compose, DAGs Python, scheduling automatique |
| Data Quality | Great Expectations | Validation schemas, data docs auto-générés |
| Monitoring | AWS SNS | Alertes temps réel, multi-protocoles (email/SMS) |
| APIs | CoinGecko, NewsAPI, HuggingFace | Prix crypto, actualités, sentiment NLP |
| Dashboard | Streamlit / React | Visualisation temps réel, déployé sur cloud gratuit |
| Dev Env | Windows 11 + Docker | PowerShell scripts, cross-platform compatible |
- Fetch Prices – Récupération des prix crypto depuis CoinGecko →
S3/raw/prices/ - Fetch News – Extraction des actualités crypto →
S3/raw/news/ - Validate Data – Contrôle de qualité via Great Expectations →
S3/validation/ - Analyze Sentiment – Analyse NLP via Hugging Face →
DynamoDB/timeseries - Notify Alerts – Notifications via SNS / EmailJS en cas d’anomalie
Déployée avec Terraform modulaire (architecture production-ready) :
| Service | Configuration | Sécurité Implémentée |
|---|---|---|
| S3 Bucket | Data Lake multi-zones | SSE-AES256, Public Access Block, Lifecycle policies, Ownership controls |
| DynamoDB | Table timeseries | Server-side encryption, TTL auto-cleanup, Point-in-time recovery, Deletion protection |
| SNS Topic | Alertes multi-canaux | Encryption in-transit, Restricted access policies |
| IAM Policies | Least privilege | Scoped ARNs, No wildcards, Template-based, Conditional attachments |
- Backend Terraform distant (S3 + DynamoDB locking)
- Chiffrement activé sur toutes les ressources
- Aucune donnée publique par défaut
- Validation automatique avec tfsec (0 vulnérabilités HIGH/CRITICAL)
- Coût total : 0€ (Free Tier uniquement)
Pull Request → GitHub Actions
├─ terraform fmt -check # Code formatting
├─ terraform validate # Syntax validation
├─ tfsec scan # Security vulnerabilities (100+ rules)
├─ checkov scan # Policy compliance
└─ SARIF upload # GitHub Security tab
│
├─ PR Comment (auto) # Results summary
└─ Merge Block # If CRITICAL/HIGH issues- Pull Requests : Validation complète + commentaire automatique
- Push main : Validation + déploiement Terraform
- Push feat/* : Validation uniquement
- Manual dispatch : Déclenchement manuel possible
- Authentification OIDC : Aucune clé AWS stockée dans GitHub
- Scans multi-niveaux : tfsec (AWS) + Checkov (compliance)
- Résultats SARIF : Intégration native GitHub Security
- Blocking automatique : PR non-mergeable si vulnérabilités critiques
- Pre-commit hooks : Validation locale avant push (Windows/Linux)
Windows (PowerShell)
.\test-terraform.ps1 # Test complet (3 checks)
.\infrastructure\terraform\Makefile.ps1 checkUnix/Linux/macOS
cd infrastructure/terraform
make check # Format + Validate + Security- Format check : 100% conforme
- Validation : 0 erreur
- Security scan : 0 vulnérabilités HIGH/CRITICAL
- Code coverage : 100% des modules testés
- Terraform : Modules réutilisables, backend distant, state locking, variables par environnement
- AWS : S3, DynamoDB, SNS, IAM (policies, OIDC), Free Tier optimization
- Architecture : Data Lake, Serving Layer, Event-driven, Multi-zones
- Security-first : tfsec, Checkov, encryption par défaut, least privilege
- GitHub Actions : OIDC authentication, SARIF reports, automated PR comments
- Automation : Pre-commit hooks, validation scripts (Windows/Linux), blocking policies
- Configuration as Code : .tfsec.yml, .pre-commit-config.yaml, Makefiles
- Orchestration : Apache Airflow, DAGs Python, scheduling, retry logic
- Data Quality : Great Expectations, validation suites, data docs
- Pipeline Design : ETL, data validation, sentiment analysis, alerting
- Storage Patterns : Raw/Validated zones, TTL, lifecycle policies
- Documentation : README complet, architecture diagrams, security docs
- Code Quality : Modularisation, DRY principle, 36% code reduction
- Cross-platform : Scripts PowerShell (Windows) + Bash (Unix/Linux)
- Cost Optimization : 100% Free Tier, resource tagging, lifecycle management
Terraform AWS GitHub Actions Docker Apache Airflow Python tfsec Checkov Great Expectations PowerShell Bash Git CI/CD DevSecOps IaC DataOps
- Architecture Terraform modulaire (4 modules)
- Backend distant S3 + DynamoDB locking
- Pipeline CI/CD avec GitHub Actions
- Scans de sécurité automatisés (tfsec + Checkov)
- Scripts de validation locale (Windows + Unix)
- Documentation complète (README, security docs, checklists)
- Toutes les ressources AWS chiffrées
- 0 vulnérabilités HIGH/CRITICAL
- DAGs Airflow :
fetch_prices,fetch_news,analyze_sentiment - Intégration Great Expectations (validation schemas)
- Configuration SNS pour alertes automatiques
- Tests unitaires et d'intégration Python
- Linting Python dans CI/CD (black, flake8, mypy)
- Dashboard Streamlit / React (graphiques temps réel)
- Métriques CloudWatch (coûts, performances, erreurs)
- Alertes multi-niveaux (info, warning, critical)
- Documentation API (Swagger/OpenAPI)
- Caching Redis pour API responses
- Lambda functions pour processing léger
- EventBridge pour event-driven architecture
- Tests de charge et optimisation performances
| Métrique | Valeur | Description |
|---|---|---|
| Code Terraform | 93 lignes (main.tf) | Réduction de 36% grâce à la modularisation |
| Modules créés | 4 modules | s3_datalake, dynamodb_timeseries, sns_alerts, iam_app_policy |
| Checks sécurité | 100+ règles | tfsec + Checkov combinés |
| Vulnérabilités | 0 HIGH/CRITICAL | Validation automatique à chaque commit |
| Coût infrastructure | 0€/mois | 100% AWS Free Tier |
| Temps de validation | ~2 minutes | CI/CD automatisé |
| Fichiers créés | 15+ fichiers | Workflows, docs, scripts, configs |
| Couverture docs | 100% | README, security, implementation, checklists |
cryptosentiment/
├── .github/
│ └── workflows/
│ └── terraform-validation.yml # CI/CD pipeline
├── infrastructure/
│ ├── modules/ # 4 modules Terraform
│ │ ├── s3_datalake/
│ │ ├── dynamodb_timeseries/
│ │ ├── sns_alerts/
│ │ └── iam_app_policy/
│ ├── terraform/
│ │ ├── main.tf # Orchestration (93 lignes)
│ │ ├── .tfsec.yml # Config sécurité
│ │ ├── Makefile.ps1 # Scripts Windows
│ │ └── SECURITY_CHECKS.md # Guide sécurité
│ └── terraform-backend-bootstrap/ # Backend S3+DynamoDB
├── docs/
│ ├── TERRAFORM_SECURITY.md # Documentation sécurité
│ └── IMPLEMENTATION_SUMMARY.md # Résumé implémentation
├── app/ # Application Python
├── docker/ # Airflow + PostgreSQL
├── scripts/ # Utilitaires
├── tests/ # Tests unitaires
├── .pre-commit-config.yaml # Hooks pre-commit
├── test-terraform.ps1 # Script validation locale
├── PRE_PUSH_CHECKLIST.md # Checklist avant push
└── README.md # Ce fichier
- Production-ready : Architecture modulaire, sécurité par défaut, monitoring
- Best practices : DevSecOps, IaC, validation automatique, documentation complète
- Scalable : Modules réutilisables, multi-environnements (dev/staging/prod)
- Cost-efficient : 0€ d'infrastructure, optimisation Free Tier
- Security-first : 0 vulnérabilités, encryption partout, OIDC sans clés
- Automation : CI/CD complet, pre-commit hooks, scripts cross-platform
- Infrastructure as Code : Terraform modulaire, state distant, locking
- Monitoring & Alerting : SNS, CloudWatch (prochainement), logging structuré
- Architecture modulaire : Code réutilisable et maintenable
- DevSecOps intégré : Sécurité dès la conception, pas après coup
- Documentation professionnelle : README, security docs, architecture diagrams
- Cross-platform : Scripts Windows (PowerShell) + Unix/Linux (Bash)
- Zero-cost : Prouve la capacité d'optimisation des ressources cloud
MAAOUIA Ahmed
- Data Engineer / Cloud & DevOps Specialist
- 📍 Paris, France
- 📧 LinkedIn : ahmed-maaouia
- 💼 Portfolio : Ce projet démontre
Ouvert aux opportunités
“From ingestion to visualization — automating every step of the DataOps lifecycle.”
