SAÉ 105 - Traiter des données
Retour aux SAE
By / Bureau Evan & Auduberteau Emilien

Contexte

L'objectif de la première partie de cette SAE était de développer un script en langage Python capable d'analyser un fichier log d'un serveur Apache et de présenter les informations extraites sous une forme visuelle plus intuitive et compréhensible pour l'utilisateur (par exemple sous la forme d'un graphique).
La deuxième partie de cette SAE reposait sur notre capacité à pouvoir créer une interface graphique. Nous devions donc recréer le célèbre jeu du Casse-Brique en langage Python avec l'aide de la librairie Tkinter.

Déroulement

Traitement de logs & Cartographie

Analyse d'un serveur de disques vinyles pour extraire et filtrer les adresses IP des visiteurs. L'objectif était de visualiser les flux utilisateurs sur une carte géographique et de reformater les données brutes en structures JSON et XML.

Interface Graphique Python

Conception et développement d'un jeu de Casse-Brique. Ce travail a permis de mettre en pratique la création d'interfaces graphiques (GUI) via la librairie Tkinter et la gestion de la logique de jeu en langage Python.

Conclusion

Cette SAE m’a permis d’approfondir mes connaissances en Python, notamment dans la lecture et le traitement de fichiers, l’utilisation des expressions régulières, et le reformatage de données en JSON ou XML.

J’ai également découvert de nouvelles bibliothèques comme folium pour la visualisation sur carte et tkinter pour créer une interface graphique. Ces outils m’ont permis de mieux comprendre comment rendre un programme plus interactif et accessible pour l’utilisateur.

Documents

Partie 1 — Ip2Map

Aperçu du script Python :

Ip2Map.py
from time import sleep
import requests
import folium

def get_ip():
    ip_table = []
    with open("log.log", 'r') as fichier:
        for line in fichier:
            line_table = line.split(" ")
            if line_table[0] not in ip_table:
                ip_table.append(line_table[0])
    return ip_table

def create_map(json_data):
    m = folium.Map(location=[48.8566, 2.3522], zoom_start=2)
    for i in json_data:
        if 'lat' in i and 'lon' in i:
            folium.Marker([i['lat'], i['lon']]).add_to(m)
    m.save('carte.html')

Partie 2 — Brick-Breaker

Accéder au dépôt complet :

github.com/0xProx1m4/SAE-104