Projets

Flickbar : aligner, redimensionner et déplacer les fenêtres macOS par gestes sur le trackpad

Projet personnel à code source ouvert · Flickbar · Montréal, Québec ·

  • Conception et développement en Swift d’une application de barre des menus macOS qui dispose les fenêtres par gestes à deux doigts sur leur barre de titre : balayer pour les moitiés, tiers et quarts, vers le haut pour remplir l’écran, vers le bas pour restaurer ou réduire, pincer pour le plein écran ou la fermeture.
  • Deux doigts posés un instant sur une barre de titre font apparaître une grille de dispositions : il suffit de glisser puis de lever les doigts pour placer la fenêtre dans la case choisie ; ⌘ et un balayage envoient la fenêtre sur un autre écran.
  • Gestes aussi sur les icônes du Dock : afficher toutes les fenêtres d’une application, passer à sa fenêtre suivante, la masquer ou la quitter, et ramener une fenêtre réduite directement dans une disposition.
  • Un aperçu montre où la fenêtre se placera et un retour haptique confirme le geste, exécuté quand les doigts se lèvent ; Échap annule, et le défilement et le zoom ordinaires passent sans changement.
  • Chaque geste est reconfigurable, avec raccourcis clavier facultatifs, espacement entre les fenêtres, exclusions par application et ouverture à la connexion ; signée avec un Developer ID, notariée par Apple et installable avec Homebrew, sous macOS 14 Sonoma ou plus récent.
  • Site Web : Cliquez ici
  • Code et dépôt GitHub : Cliquez ici
Bannière de Flickbar : le slogan Flick windows into place, à côté d’une fenêtre alignée sur la moitié gauche de l’écran
Flickbar : des fenêtres en place d’un geste

Koolest TV Launcher : un écran d’accueil rapide et sans publicité pour Android TV et Google TV

Projet personnel à code source ouvert · KoolestTVLauncher · Montréal, Québec ·

  • Conception et développement en Kotlin d’un écran d’accueil de remplacement pour Android TV et Google TV, distribué en un seul APK de 0,7 Mo, sans bibliothèque tierce, sans publicité, sans compte et sans pistage.
  • Interface Liquid Glass dans le style d’iOS 26 : un menu en verre, une grande bannière qui reprend l’image de l’élément sélectionné et des rangées pour Reprendre la lecture, les applications, les consoles et les services de diffusion en continu.
  • Lecture de la liste Watch Next d’Android TV et des chaînes d’accueil des applications pour construire une rangée Reprendre la lecture qui fonctionne d’une application à l’autre.
  • Détection des consoles et appareils par HDMI-CEC (PlayStation, Xbox, Switch, Apple TV, etc.) et passage à leur entrée en un clic.
  • Ouverture de Koolest par le bouton Accueil même sur Google TV, où le lanceur système ne peut pas être remplacé, et configuration adb depuis la télécommande grâce au débogage réseau du téléviseur.
  • Écran de veille Galerie avec tableaux, horloge, météo et lecture en cours ; offert en anglais, en français et en persan, sur toutes les marques sous Android 8 à 16.
  • Site Web : Cliquez ici
  • Code et dépôt GitHub : Cliquez ici
Écran d’accueil de Koolest : le menu en verre à gauche, la météo et l’horloge en haut, une bannière pour l’émission sélectionnée et la rangée Reprendre la lectureL’écran de veille Galerie : horloge, calendrier, musique et météo sur du verre devant un tableau de Bierstadt
Écran d’accueil et écran de veille Galerie de Koolest

Algorithmes de flot à coût minimal sur des réseaux source–puits aléatoires

Étude expérimentale d’algorithmes d’optimisation de flots de réseau – Projet de cours aux cycles supérieurs · Université Concordia · Montréal, Québec ·

  • Implémentation de l’algorithme du plus court chemin successif (Successive Shortest Path) à partir de zéro, incluant la construction du graphe résiduel, l’extraction de chemins de coût minimal basée sur Bellman–Ford et la logique d’augmentation de flot.
  • Conception et réalisation d’une évaluation expérimentale à grande échelle sur des graphes euclidiens orientés aléatoires selon 28 configurations, avec variation de la densité (𝑟), des bornes de capacité et des régimes de coûts.
  • Comparaison des algorithmes SSP, mise à l’échelle des capacités (Capacity Scaling), Scaling-SSP et primal–dual à l’aide de métriques incluant le coût total, la valeur du flot, le nombre de chemins augmentants, la longueur moyenne des chemins et la longueur proportionnelle des chemins.
  • Mise en évidence que l’algorithme primal–dual atteint systématiquement le coût minimal optimal, tandis que SSP offre des performances compétitives dans des régimes clairsemés et se dégrade dans les graphes denses.
  • Rapport de projet Cliquez ici
  • Code et dépôt GitHub : Cliquez ici
Capture d’écran du rapport
Capture d’écran du rapport

Optimisation des réseaux de neurones sur graphes pour la détection de communautés à grande échelle

Évaluation de stratégies d’entraînement évolutives pour les réseaux de neurones sur graphes – Projet de cours aux cycles supérieurs · Université Concordia · Montréal, Québec ·

  • Conception et mise en œuvre de pipelines évolutifs de détection de communautés basés sur des GNN, utilisant les architectures GCN et GraphSAGE avec des stratégies d’entraînement en lot complet (full-batch), d’échantillonnage de voisins et de partitionnement de graphe.
  • Réalisation d’expériences approfondies sur les ensembles de données SBM (1K, 10K), CORA et Reddit, démontrant que l’échantillonnage de voisins et le partitionnement de graphe permettent l’entraînement sur de grands graphes lorsque les méthodes en lot complet échouent en raison de contraintes mémoire.
  • Atteinte d’une précision allant jusqu’à 90 % sur SBM (10K nœuds) avec le partitionnement de graphe tout en réduisant l’empreinte mémoire, et activation d’un entraînement évolutif sur Reddit où les méthodes en lot complet entraînaient des erreurs de mémoire insuffisante.
  • Analyse des compromis entre précision, temps d’entraînement et utilisation de la mémoire, en proposant des lignes directrices pratiques pour le déploiement évolutif de GNN dans des réseaux sociaux de grande taille en contexte réel.
  • Diapositives de présentation Cliquez ici
  • Proposition de projet Cliquez ici
  • Rapport de projet Cliquez ici
  • Code et dépôt GitHub : Cliquez ici
Capture d’écran du rapport
Capture d’écran du rapport

Plusieurs projets relatifs au cours d’exploration de données

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Prétraitement des données
  • Algorithmes de classification (Naive Bayes, k-NN, arbres de décision)
  • Algorithmes de regroupement (k-means, DBSCAN)
  • Règles d’association (Apriori)
  • Réduction de dimensionnalité (PCA)
Logo DTM
Logo DTM

Plusieurs projets relatifs au cours de recherche d’information

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Moteurs de recherche Web
  • Indexation et récupération de documents
  • Modèles de récupération d’information
  • Évaluation des systèmes de recherche
  • Web scraping et crawling
Logo RI
Logo RI

SYMPHONYC : La base de données d’un service de streaming musical similaire à Spotify.

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Un projet concernant le cours de bases de données. Ce projet consiste en :

  • Collecte d’informations initiales pour la construction d’une base de données
  • Modèle entité-relation amélioré
  • Modèle relationnel
  • Normalisation
  • Implémentation de la base de données
  • Requêtes SQL

Plusieurs projets relatifs au cours de structures de données

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Listes, piles, files
  • Arbres, arbres binaires de recherche
  • Tables de hachage
  • Graphes et leurs implémentations
  • Tri et recherche
Logo DS
Logo DS

Plusieurs projets relatifs au cours de conception et analyse d’algorithmes

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Plusieurs problèmes d’algorithmes classiques
  • Tri fusion, tri rapide
  • Problèmes de programmation dynamique
  • Problèmes d’algorithmes gloutons
  • Algorithmes de graphes
Logo DA
Logo DA

Plusieurs projets relatifs au cours d’intelligence artificielle

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • BFS, DFS, IDS, UCS (stratégies de recherche non informées)
  • Résolveur de puzzle 8 utilisant A* et IDA (stratégies de recherche informées heuristiques)
  • Algorithmes génétiques, recuit simulé (recherche locale)
  • Min-Max, Alpha–Beta (recherche adversariale)
  • Classification d’un ensemble de données (apprentissage automatique de base)
  • Représentation des connaissances utilisant prolog (système basé sur les connaissances)
Logo IA
Logo IA

Projet ‘Uncertainty’ : Un jeu vidéo et projet de laboratoire de génie logiciel

Projet de cours de premier cycle et pour le plaisir ! · Université Vali-e-Asr de Rafsanjan, Département de génie informatique et Null References : Équipe de développement de jeux · Rafsanjan, Kerman et Yazd, Iran ·

  • Uncertainty est un jeu de tir spatial d’action-aventure, et il est actuellement en développement.
  • Nous avons utilisé la version bêta de ce jeu comme projet de cours pour notre « Laboratoire de génie logiciel ».
  • Notre jeu est un jeu open-source hébergé sur GitHub.
  • Il est créé avec Unity3D
  • Actuellement, notre équipe n’est pas à son apogée car tous ses membres sont occupés à l’université. Néanmoins, nous sommes impatients de continuer Uncertainty et de le terminer éventuellement lorsque nous serons libres.
  • Ce projet consiste en :
    • Utilisation soigneuse de patrons de conception
    • Suivi des principes SOLID dans le code
    • Exigences du projet
    • Évaluation des besoins du projet
    • Scénario du projet
    • Diagramme de cas d’utilisation
    • Diagramme d’activité
    • Diagramme de classes
    • Diagramme de séquence
    • Art accrocheur et modèles 3D
    • Base de code évolutive et réutilisable
    • Intégration continue
    • Tests unitaires
Capture d'écran du gameplay
Capture d'écran du gameplay

Plusieurs projets utilisant le framework Qt

Projet de cours de premier cycle et pour le plaisir ! · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Applications de bureau en utilisant Qt
  • Interfaces graphiques utilisateur (GUI)
  • Gestion d’événements
  • Connexions signal-slot
  • Applications multi-fenêtres
Logo Qt
Logo Qt

Projets de systèmes d’exploitation, VHDL, conception de circuits et assembleur x64

Projet de cours de premier cycle · Université Vali-e-Asr de Rafsanjan, Département de génie informatique · Rafsanjan, Kerman, Iran ·

Conception et implémentation de :

  • Projets de systèmes d’exploitation
  • Conception de circuits numériques en VHDL
  • Projets de conception de circuits
  • Programmation en assembleur x64
Logo OS/VHDL/CD/x64
Logo OS/VHDL/CD/x64

Apprentissage d’Unity3D et développement de jeux

Juste pour le plaisir ! · Null References : Équipe de développement de jeux · Kerman et Yazd, Iran ·

Apprentissage et pratique de :

  • Moteur Unity3D
  • Programmation de jeux en C#
  • Physique de jeu
  • Animation et graphiques
  • Conception de niveaux
  • Patrons de conception pour le développement de jeux
Logo Unity
Logo Unity