- 📘 Description du Projet
- ⚙️ Installation et Configuration
- 🧩 Utilisation
- 🛠️ Technologies Utilisées
- 📊 Exemples de Code
- 👥 Contributeurs
- 🤝 Contribution
- 📸 Captures d'écran
Analyseur de Données est une application web construite avec Django pour analyser des fichiers de données (CSV et Excel). Elle permet aux utilisateurs de :
- Télécharger des fichiers.
- Calculer des statistiques descriptives comme la moyenne, la médiane, le mode, la variance, et l’écart-type.
- Analyser les corrélations entre les colonnes.
- Télécharger les résultats sous forme de fichiers CSV ou PDF.
- Générer des visualisations comme des histogrammes, heatmaps, régressions, etc.
Créer un outil convivial et fonctionnel pour analyser des données et produire des visualisations afin d’en extraire des insights.
- Python 3.8+
pip(gestionnaire de paquets Python)- Django 5.0+
- Bibliothèques supplémentaires :
pandas,matplotlib,seaborn,openpyxl,reportlab - Base de donnée SQLite ou PostgreSQL
- Git installé sur le système
-
Clonez le dépôt :
git clone https://github.com/yourusername/analyseur_donnees.git cd analyseur_donnees -
Installez les dépendances :
pip install -r requirements.txt
-
Configurez les paramètres du projet :
- Créez un fichier
.envdans le répertoire racine du projet et ajoutez les paramètres nécessaires. - Alternativement, vous pouvez configurer directement dans
settings.py:SECRET_KEY,DEBUG,STATIC_ROOT,MEDIA_ROOT
- Assurez-vous que les paramètres de la base de données sont correctement configurés.
Exemple dans
settings.py:STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
Exemple dans
settings.pypour PostgreSQL :DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'votre_nom_de_bd', 'USER': 'votre_utilisateur', 'PASSWORD': 'votre_mot_de_passe', 'HOST': 'localhost', 'PORT': '5432', } }
Exemple dans
settings.pypour SQLite :DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
- Créez un fichier
-
Exécutez les migrations :
python manage.py migrate
-
Collectez les fichiers statiques :
python manage.py collectstatic
-
Créez un superutilisateur :
python manage.py createsuperuser
-
Lancez le serveur local :
python manage.py runserver
Accédez à l'application à l'adresse http://127.0.0.1:8000.
- Page d’accueil : Navigation vers le profil utilisateur, l’historique des analyses, ou la page de téléchargement.
- Téléchargement de fichiers : Supporte les fichiers CSV et Excel.
- Analyse statistique :
- Moyenne, médiane, mode, variance, écart-type.
- Visualisations : Génération d’histogrammes, heatmaps, scatter plots, boxplots, bar charts.
- Historique des analyses : Tableau des fichiers analysés avec téléchargement des résultats (CSV ou PDF).
- Authentification sécurisée : Inscription, connexion, gestion de profil.
- Backend : Django (Python)
- Frontend : HTML, CSS (Bootstrap 5)
- Manipulation de données : Pandas, NumPy
- Visualisations : Matplotlib, Seaborn
- Base de données : SQLite ou PostgreSQL
- Rapports PDF : ReportLab
- Fichiers Excel : Openpyxl
@login_required
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
# Lecture et traitement du fichier
df = pd.read_excel(file, engine='openpyxl') if file.name.endswith('.xlsx') else pd.read_csv(file)
# Calcul des statistiques et sauvegarde des résultats
...
messages.success(request, f"Analyse de {file.name} terminée.")
return redirect('analysis_history')
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})<table class="table table-bordered table-hover align-middle text-center">
<thead>
<tr>
<th>Nom du Fichier</th>
<th>Date</th>
<th>Moyenne</th>
<th>Médiane</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for analysis in user_analyses %}
<tr>
<td>{{ analysis.file_name }}</td>
<td>{{ analysis.upload_date }}</td>
<td>{{ analysis.mean }}</td>
<td>{{ analysis.median }}</td>
<td>
<a href="{% url 'analyse:visualization_options' analysis.id %}" class="btn btn-primary">Visualiser</a>
<a href="{% url 'analyse:delete_analysis' analysis.id %}" class="btn btn-danger">Supprimer</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>- Mohamed Lakssir
- Houssam Aoun
-
Forkez le projet :
git clone https://github.com/yourusername/analyseur_donnees.git cd analyseur_donnees -
Travaillez sur une branche dédiée :
git fetch origin feature-houssam git checkout feature-houssam
-
Proposez vos modifications :
git add . git commit -m "Ajout de [votre fonctionnalité ou correction]" git push origin feature-houssam
-
Ouvrez une Pull Request pour révision.
If your MySQL server requires TLS/SSL, this project supports configuring the connection via environment variables. Copy .env.example to .env and fill the values.
Important environment variables (see .env.example):
MYSQL_DB_NAME,MYSQL_DB_USER,MYSQL_DB_PASSWORD,MYSQL_DB_HOST,MYSQL_DB_PORTMYSQL_SSL_MODE(e.g.VERIFY_IDENTITY,VERIFY_CA,REQUIRED,DISABLED)MYSQL_SSL_CA— path to CA bundle fileMYSQL_SSL_CERT— path to client certificate (if required)MYSQL_SSL_KEY— path to client key (if required)
Place certificate files outside the repository (don't commit them). Use absolute paths in the .env file or paths relative to the project root.
Example .env entries:
MYSQL_SSL_MODE=VERIFY_CA
MYSQL_SSL_CA=/etc/ssl/certs/ca.pem
MYSQL_SSL_CERT=/etc/ssl/certs/client-cert.pem
MYSQL_SSL_KEY=/etc/ssl/private/client-key.pemWhen these variables are set and MYSQL_SSL_MODE is not DISABLED, Django will pass SSL options to the MySQL client connector. Ensure your connector (mysqlclient or PyMySQL) supports the provided options.












