Skip to content

About

End-to-end Data Engineering project for crypto sentiment analysis — modular Terraform infrastructure, AWS Free Tier, Airflow orchestration, and CI/CD with GitHub Actions (OIDC).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CryptoSentiment

IaC Security CI/CD Cloud Orchestration Data%20Quality License

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.


🎯 Objectifs & Réalisations

Ce projet démontre la maîtrise complète du cycle de vie DataOps :

Infrastructure as Code (IaC) - Terraform

  • 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)

DevSecOps & CI/CD

  • 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

Data Engineering Pipeline

  • 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)

Coût Total : 0€

  • AWS Free Tier uniquement
  • GitHub Actions gratuit (repo public)
  • Tous les outils open-source

🏗️ Architecture Modulaire

Architecture Diagram

Infrastructure Terraform - Modules Réutilisables

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

Stack Technique Complète

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

⚙️ Pipeline de données (Airflow)

Étapes principales :

  1. Fetch Prices – Récupération des prix crypto depuis CoinGecko → S3/raw/prices/
  2. Fetch News – Extraction des actualités crypto → S3/raw/news/
  3. Validate Data – Contrôle de qualité via Great Expectations → S3/validation/
  4. Analyze Sentiment – Analyse NLP via Hugging Face → DynamoDB/timeseries
  5. Notify Alerts – Notifications via SNS / EmailJS en cas d’anomalie

☁️ Infrastructure AWS - Sécurisée par Design

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

Caractéristiques Avancées

  • 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)

� Pipeline DevSecOps - CI/CD Automatisé

Workflow GitHub Actions (Zero-Trust Security)

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

Déclencheurs Automatiques

  • Pull Requests : Validation complète + commentaire automatique
  • Push main : Validation + déploiement Terraform
  • Push feat/* : Validation uniquement
  • Manual dispatch : Déclenchement manuel possible

Sécurité Renforcée

  • 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)

Scripts de Validation Locale

Windows (PowerShell)

.\test-terraform.ps1           # Test complet (3 checks)
.\infrastructure\terraform\Makefile.ps1 check

Unix/Linux/macOS

cd infrastructure/terraform
make check                     # Format + Validate + Security

Métriques de Qualité

  • Format check : 100% conforme
  • Validation : 0 erreur
  • Security scan : 0 vulnérabilités HIGH/CRITICAL
  • Code coverage : 100% des modules testés

🎓 Compétences Techniques Démontrées

Infrastructure & Cloud

  • 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

DevSecOps & CI/CD

  • 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

Data Engineering

  • 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

Best Practices

  • 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

Outils Maîtrisés

Terraform AWS GitHub Actions Docker Apache Airflow Python tfsec Checkov Great Expectations PowerShell Bash Git CI/CD DevSecOps IaC DataOps


🚀 Roadmap & Prochaines Étapes

Phase 1 : Infrastructure & DevSecOps ✅ TERMINÉ

  • 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

Phase 2 : Data Pipeline (En cours)

  • 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)

Phase 3 : Visualisation & Monitoring

  • Dashboard Streamlit / React (graphiques temps réel)
  • Métriques CloudWatch (coûts, performances, erreurs)
  • Alertes multi-niveaux (info, warning, critical)
  • Documentation API (Swagger/OpenAPI)

Phase 4 : Optimisation & Scale

  • Caching Redis pour API responses
  • Lambda functions pour processing léger
  • EventBridge pour event-driven architecture
  • Tests de charge et optimisation performances

� Métriques du Projet

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

📂 Structure du Projet

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

🎯 Pourquoi ce Projet se Démarque

Data Engineering

  • 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

DevOps/Cloud

  • 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é

Différenciateurs Clés

  1. Architecture modulaire : Code réutilisable et maintenable
  2. DevSecOps intégré : Sécurité dès la conception, pas après coup
  3. Documentation professionnelle : README, security docs, architecture diagrams
  4. Cross-platform : Scripts Windows (PowerShell) + Unix/Linux (Bash)
  5. Zero-cost : Prouve la capacité d'optimisation des ressources cloud

🤝 Contact

MAAOUIA Ahmed

Ouvert aux opportunités


🧰 Stack Icons

“From ingestion to visualization — automating every step of the DataOps lifecycle.”

About

End-to-end Data Engineering project for crypto sentiment analysis — modular Terraform infrastructure, AWS Free Tier, Airflow orchestration, and CI/CD with GitHub Actions (OIDC).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages