@@ -295,24 +295,6 @@ <h1 class="page-heading">Tâches</h1>
295295 < h1 class ="page-heading "> Apprentissage</ h1 >
296296 < button class ="btn btn-primary " onclick ="LearningModule.openSubjectModal() "> + Nouvelle matière</ button >
297297 </ div >
298- < div class ="learning-global-stats " id ="learningGlobalStats "> </ div >
299- < div class ="learning-toolbar ">
300- < div class ="search-wrap ">
301- < svg class ="search-icon " viewBox ="0 0 24 24 "> < circle cx ="11 " cy ="11 " r ="8 "/> < path d ="M21 21l-4.35-4.35 "/> </ svg >
302- < input type ="text " id ="learningSearch " class ="form-input search-input " placeholder ="Rechercher une matière... ">
303- </ div >
304- < select class ="form-input " id ="learningFilter " style ="width:auto ">
305- < option value ="all "> Toutes les matières</ option >
306- < option value ="inprogress "> En cours</ option >
307- < option value ="completed "> Terminées (100%)</ option >
308- < option value ="notstarted "> Non commencées</ option >
309- </ select >
310- < select class ="form-input " id ="learningSort " style ="width:auto ">
311- < option value ="name "> Trier par nom</ option >
312- < option value ="progress "> Trier par progression</ option >
313- < option value ="recent "> Plus récentes</ option >
314- </ select >
315- </ div >
316298 < div id ="learningContent ">
317299 < div id ="subjectsList " class ="subjects-grid "> </ div >
318300 </ div >
@@ -700,7 +682,7 @@ <h1 class="page-heading">Langues</h1>
700682 < div class ="about-hero-info ">
701683 < h1 class ="about-name "> Badreddine Madad</ h1 >
702684 < p class ="about-title "> BSc Computer Science Student · University of Namur</ p >
703- < p class ="about-desc "> I am a computer science student passionate about building practical tools and software systems . I enjoy developing applications that improve productivity, learning, and personal organization .< br > < br > This website ( < strong > LifeOS </ strong > ) is a personal project designed to manage daily life, productivity, finances , and learning in one unified system .</ p >
685+ < p class ="about-desc "> Bachelor's student in Computer Science at the University of Namur, currently looking for an internship to further develop my technical skills in a stimulating professional environment . I am particularly interested in computer systems architecture and cybersecurity, a field in which I plan to pursue a master's degree .< br > < br > Through academic and personal projects, I have built a solid foundation in software development, databases, modeling, and web applications. Curious, rigorous , and quick to learn, I adapt easily to new tools, technologies, and technical environments .</ p >
704686 < div class ="about-meta-row ">
705687 < span class ="about-meta-badge "> < svg viewBox ="0 0 24 24 "> < path d ="M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0118 0z "/> < circle cx ="12 " cy ="10 " r ="3 "/> </ svg > Namur, Belgium</ span >
706688 < span class ="about-meta-badge available "> < span class ="about-pulse "> </ span > Open to opportunities</ span >
@@ -711,11 +693,11 @@ <h1 class="about-name">Badreddine Madad</h1>
711693 < svg viewBox ="0 0 24 24 "> < path d ="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z "/> < polyline points ="22,6 12,13 2,6 "/> </ svg >
712694 < span > Email</ span >
713695 </ a >
714- < a class ="about-social-btn " href ="https://www. linkedin.com/in/badreddine-madad-b18a81299/ " target ="_blank " rel ="noopener " title ="LinkedIn ">
696+ < a class ="about-social-btn " href ="https://linkedin.com/in/BadreddineMADAD " target ="_blank " rel ="noopener " title ="LinkedIn ">
715697 < svg viewBox ="0 0 24 24 "> < path d ="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6z "/> < rect x ="2 " y ="9 " width ="4 " height ="12 "/> < circle cx ="4 " cy ="4 " r ="2 "/> </ svg >
716698 < span > LinkedIn</ span >
717699 </ a >
718- < a class ="about-social-btn " href ="https://github.com/badreddinemadad05 " target ="_blank " rel ="noopener " title ="GitHub ">
700+ < a class ="about-social-btn " href ="https://github.com/badreddinemadad05?tab=repositories " target ="_blank " rel ="noopener " title ="GitHub ">
719701 < svg viewBox ="0 0 24 24 "> < path d ="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0020 4.77 5.07 5.07 0 0019.91 1S18.73.65 16 2.48a13.38 13.38 0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 005 4.77a5.44 5.44 0 00-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 009 18.13V22 "/> </ svg >
720702 < span > GitHub</ span >
721703 </ a >
@@ -755,8 +737,11 @@ <h2 class="about-section-title">Education</h2>
755737 < span class ="about-badge course "> Python</ span >
756738 < span class ="about-badge course "> Java</ span >
757739 < span class ="about-badge course "> C</ span >
740+ < span class ="about-badge course "> Rust</ span >
758741 < span class ="about-badge course "> Algorithms & Data Structures</ span >
759742 < span class ="about-badge course "> OOP</ span >
743+ < span class ="about-badge course "> Databases</ span >
744+ < span class ="about-badge course "> Modeling</ span >
760745 </ div >
761746 </ div >
762747 </ div >
@@ -836,14 +821,8 @@ <h2 class="about-section-title">Technical Skills</h2>
836821 < span class ="about-badge lang-java "> Java</ span >
837822 < span class ="about-badge lang-c "> C</ span >
838823 < span class ="about-badge lang-rust "> Rust</ span >
839- </ div >
840- </ div >
841- < div class ="about-skills-group ">
842- < div class ="about-skills-label "> Computer Science</ div >
843- < div class ="about-badges-wrap ">
844- < span class ="about-badge cs "> Algorithms</ span >
845- < span class ="about-badge cs "> Data Structures</ span >
846- < span class ="about-badge cs "> OOP</ span >
824+ < span class ="about-badge web "> JavaScript</ span >
825+ < span class ="about-badge cs "> SQL</ span >
847826 </ div >
848827 </ div >
849828 < div class ="about-skills-group ">
@@ -852,15 +831,44 @@ <h2 class="about-section-title">Technical Skills</h2>
852831 < span class ="about-badge web "> HTML5</ span >
853832 < span class ="about-badge web "> CSS3</ span >
854833 < span class ="about-badge web "> JavaScript</ span >
834+ < span class ="about-badge web "> FastAPI</ span >
835+ </ div >
836+ </ div >
837+ < div class ="about-skills-group ">
838+ < div class ="about-skills-label "> Databases</ div >
839+ < div class ="about-badges-wrap ">
840+ < span class ="about-badge cs "> MySQL</ span >
841+ < span class ="about-badge cs "> SQLite</ span >
842+ </ div >
843+ </ div >
844+ < div class ="about-skills-group ">
845+ < div class ="about-skills-label "> Tools</ div >
846+ < div class ="about-badges-wrap ">
847+ < span class ="about-badge soft "> Docker</ span >
848+ < span class ="about-badge soft "> Git</ span >
849+ < span class ="about-badge soft "> Rodin</ span >
850+ < span class ="about-badge soft "> Event-B</ span >
851+ < span class ="about-badge soft "> Processing</ span >
852+ </ div >
853+ </ div >
854+ < div class ="about-skills-group ">
855+ < div class ="about-skills-label "> Concepts</ div >
856+ < div class ="about-badges-wrap ">
857+ < span class ="about-badge cs "> REST APIs</ span >
858+ < span class ="about-badge cs "> JWT</ span >
859+ < span class ="about-badge cs "> OOP</ span >
860+ < span class ="about-badge cs "> Algorithms</ span >
861+ < span class ="about-badge cs "> Modeling</ span >
855862 </ div >
856863 </ div >
857864 < div class ="about-skills-group ">
858- < div class ="about-skills-label "> Soft Skills </ div >
865+ < div class ="about-skills-label "> Strengths </ div >
859866 < div class ="about-badges-wrap ">
860- < span class ="about-badge soft "> Hard-working</ span >
861- < span class ="about-badge soft "> Eye for detail</ span >
862- < span class ="about-badge soft "> Motivator</ span >
863- < span class ="about-badge soft "> Leader</ span >
867+ < span class ="about-badge soft "> Rigorous</ span >
868+ < span class ="about-badge soft "> Autonomous</ span >
869+ < span class ="about-badge soft "> Curious</ span >
870+ < span class ="about-badge soft "> Analytical mindset</ span >
871+ < span class ="about-badge soft "> Fast learner</ span >
864872 </ div >
865873 </ div >
866874 </ div >
@@ -875,67 +883,67 @@ <h2 class="about-section-title">Projects</h2>
875883
876884 < div class ="about-project-card ">
877885 < div class ="about-project-header ">
878- < div class ="about-project-icon "> 🛒 </ div >
886+ < div class ="about-project-icon "> 🏥 </ div >
879887 < div >
880- < div class ="about-project-title "> Full-Stack Video Game E-Commerce </ div >
888+ < div class ="about-project-title "> Hospital Management System </ div >
881889 < div class ="about-project-tags ">
882- < span class ="about-ptag "> Web </ span > < span class ="about-ptag "> Full-Stack </ span >
890+ < span class ="about-ptag "> MySQL </ span > < span class ="about-ptag "> Python </ span > < span class =" about-ptag " > Docker </ span >
883891 </ div >
884892 </ div >
885893 </ div >
886- < p class ="about-project-desc "> Developed a full-stack web application to sell video games. Implemented both front-end and back-end features for browsing products and purchasing games .</ p >
894+ < p class ="about-project-desc "> Designed a relational database to manage patients, visits, and hospitalizations, with SQL trigger-based automation and a Python interface connected to MySQL .</ p >
887895 </ div >
888896
889897 < div class ="about-project-card ">
890898 < div class ="about-project-header ">
891- < div class ="about-project-icon "> 🐑 </ div >
899+ < div class ="about-project-icon "> 🚆 </ div >
892900 < div >
893- < div class ="about-project-title "> AI Sheep Battle Game </ div >
901+ < div class ="about-project-title "> Railway Network Simulation </ div >
894902 < div class ="about-project-tags ">
895- < span class ="about-ptag "> Python </ span > < span class ="about-ptag "> AI </ span > < span class ="about-ptag "> OOP </ span >
903+ < span class ="about-ptag "> Java </ span > < span class ="about-ptag "> Processing </ span > < span class ="about-ptag "> Simulation </ span >
896904 </ div >
897905 </ div >
898906 </ div >
899- < p class ="about-project-desc "> Team-based battle simulation with autonomous sheep agents. Applied object-oriented programming principles .</ p >
907+ < p class ="about-project-desc "> Developed a visual railway traffic simulation with track management, signaling, traffic conflict handling, and real-time monitoring .</ p >
900908 </ div >
901909
902910 < div class ="about-project-card ">
903911 < div class ="about-project-header ">
904- < div class ="about-project-icon "> 🚇 </ div >
912+ < div class ="about-project-icon "> 🚋 </ div >
905913 < div >
906- < div class ="about-project-title "> Smart Vehicle Transport Simulation </ div >
914+ < div class ="about-project-title "> Formal Modeling of a Tram Network </ div >
907915 < div class ="about-project-tags ">
908- < span class ="about-ptag "> Java </ span > < span class ="about-ptag "> Processing </ span > < span class ="about-ptag "> Simulation </ span >
916+ < span class ="about-ptag "> Rodin </ span > < span class ="about-ptag "> Event-B </ span > < span class ="about-ptag "> Formal Methods </ span >
909917 </ div >
910918 </ div >
911919 </ div >
912- < p class ="about-project-desc "> Simulated an automated vehicle elevator and underground metro transport system .</ p >
920+ < p class ="about-project-desc "> Specified a transport system using safety invariants, successive refinements, and formal verification of critical properties .</ p >
913921 </ div >
914922
915923 < div class ="about-project-card ">
916924 < div class ="about-project-header ">
917- < div class ="about-project-icon "> 🧠 </ div >
925+ < div class ="about-project-icon "> 🛒 </ div >
918926 < div >
919- < div class ="about-project-title "> Algorithmic Problem Solving </ div >
927+ < div class ="about-project-title "> GameStore — Video Game E-commerce Platform </ div >
920928 < div class ="about-project-tags ">
921- < span class ="about-ptag "> Java </ span > < span class ="about-ptag "> Algorithms </ span >
929+ < span class ="about-ptag "> FastAPI </ span > < span class ="about-ptag "> SQLite </ span > < span class =" about-ptag " > JWT </ span > < span class =" about-ptag " > Full-Stack </ span >
922930 </ div >
923931 </ div >
924932 </ div >
925- < p class ="about-project-desc "> Implemented divide & conquer, greedy, generate-and-test, and dynamic programming algorithms .</ p >
933+ < p class ="about-project-desc "> Developed a full-stack web application with JWT authentication, product catalog, cart, orders, admin interface, and REST API .</ p >
926934 </ div >
927935
928936 < div class ="about-project-card about-project-featured ">
929937 < div class ="about-project-header ">
930938 < div class ="about-project-icon "> 🌐</ div >
931939 < div >
932- < div class ="about-project-title "> LifeOS — This Website </ div >
940+ < div class ="about-project-title "> LifeOS — Personal Productivity Dashboard </ div >
933941 < div class ="about-project-tags ">
934- < span class ="about-ptag "> HTML</ span > < span class ="about-ptag "> CSS</ span > < span class ="about-ptag "> JavaScript</ span > < span class ="about-ptag "> Personal Project </ span >
942+ < span class ="about-ptag "> HTML</ span > < span class ="about-ptag "> CSS</ span > < span class ="about-ptag "> JavaScript</ span > < span class ="about-ptag "> Chart.js </ span >
935943 </ div >
936944 </ div >
937945 </ div >
938- < p class ="about-project-desc "> Personal productivity dashboard with tasks, habits, finances, language learning, Pomodoro timer, statistics, and more — built entirely in vanilla JS with localStorage persistence .</ p >
946+ < p class ="about-project-desc "> Built a single-page productivity web application featuring tasks, calendar, habits, finances, notes, and statistics, with local storage and a responsive interface .</ p >
939947 </ div >
940948
941949 </ div >
@@ -1420,113 +1428,6 @@ <h2 id="subjectModalTitle">Nouvelle matière</h2>
14201428 </ div >
14211429</ div >
14221430
1423- <!-- Subject Task Modal -->
1424- < div class ="modal hidden " id ="subjectTaskModal ">
1425- < div class ="modal-header ">
1426- < h2 id ="subjectTaskModalTitle "> Nouvelle tâche</ h2 >
1427- < button class ="modal-close " onclick ="Modal.close('subjectTaskModal') "> ×</ button >
1428- </ div >
1429- < div class ="modal-body ">
1430- < input type ="hidden " id ="subjectTaskId ">
1431- < input type ="hidden " id ="subjectTaskSubjectId ">
1432- < div class ="form-row ">
1433- < label > Titre *</ label >
1434- < input type ="text " id ="subjectTaskTitle " class ="form-input " placeholder ="Ex: Faire le TP 3 ">
1435- </ div >
1436- < div class ="form-row two-col ">
1437- < div >
1438- < label > Catégorie</ label >
1439- < select id ="subjectTaskCategory " class ="form-input ">
1440- < option value ="Cours "> Cours</ option >
1441- < option value ="TP "> TP</ option >
1442- < option value ="Exercice "> Exercice</ option >
1443- < option value ="Vidéo YouTube "> Vidéo YouTube</ option >
1444- < option value ="Révision "> Révision</ option >
1445- < option value ="Devoir "> Devoir</ option >
1446- < option value ="Projet "> Projet</ option >
1447- < option value ="Lecture "> Lecture</ option >
1448- </ select >
1449- </ div >
1450- < div >
1451- < label > Priorité</ label >
1452- < select id ="subjectTaskPriority " class ="form-input ">
1453- < option value ="low "> Basse</ option >
1454- < option value ="medium " selected > Moyenne</ option >
1455- < option value ="high "> Haute</ option >
1456- </ select >
1457- </ div >
1458- </ div >
1459- < div class ="form-row ">
1460- < label > Description (optionnel)</ label >
1461- < textarea id ="subjectTaskDescription " class ="form-textarea " rows ="2 " placeholder ="Détails de la tâche... "> </ textarea >
1462- </ div >
1463- < div class ="form-row two-col ">
1464- < div >
1465- < label > Date limite (optionnel)</ label >
1466- < input type ="date " id ="subjectTaskDeadline " class ="form-input ">
1467- </ div >
1468- < div >
1469- < label > Statut</ label >
1470- < select id ="subjectTaskStatus " class ="form-input ">
1471- < option value ="todo "> À faire</ option >
1472- < option value ="progress "> En cours</ option >
1473- < option value ="done "> Terminé</ option >
1474- </ select >
1475- </ div >
1476- </ div >
1477- < div class ="form-row ">
1478- < label > Lien (optionnel)</ label >
1479- < input type ="url " id ="subjectTaskLink " class ="form-input " placeholder ="https://... ">
1480- </ div >
1481- </ div >
1482- < div class ="modal-footer ">
1483- < button class ="btn btn-secondary " onclick ="Modal.close('subjectTaskModal') "> Annuler</ button >
1484- < button class ="btn btn-danger hidden " id ="subjectTaskDeleteBtn "> Supprimer</ button >
1485- < button class ="btn btn-primary " id ="subjectTaskSaveBtn "> Enregistrer</ button >
1486- </ div >
1487- </ div >
1488-
1489- <!-- Subject Resource Modal -->
1490- < div class ="modal hidden " id ="subjectResourceModal ">
1491- < div class ="modal-header ">
1492- < h2 id ="subjectResourceModalTitle "> Nouvelle ressource</ h2 >
1493- < button class ="modal-close " onclick ="Modal.close('subjectResourceModal') "> ×</ button >
1494- </ div >
1495- < div class ="modal-body ">
1496- < input type ="hidden " id ="subjectResourceId ">
1497- < input type ="hidden " id ="subjectResourceSubjectId ">
1498- < div class ="form-row ">
1499- < label > Titre *</ label >
1500- < input type ="text " id ="subjectResourceTitle " class ="form-input " placeholder ="Ex: Cours magistral - Tri par insertion ">
1501- </ div >
1502- < div class ="form-row ">
1503- < label > Type</ label >
1504- < select id ="subjectResourceType " class ="form-input ">
1505- < option value ="Cours "> Cours</ option >
1506- < option value ="PDF "> PDF</ option >
1507- < option value ="Vidéo YouTube "> Vidéo YouTube</ option >
1508- < option value ="Note "> Note</ option >
1509- < option value ="Document "> Document</ option >
1510- < option value ="Exercice "> Exercice</ option >
1511- < option value ="Chapitre "> Chapitre</ option >
1512- </ select >
1513- </ div >
1514- < div class ="form-row ">
1515- < label > Lien (optionnel)</ label >
1516- < input type ="url " id ="subjectResourceLink " class ="form-input " placeholder ="https://... ">
1517- </ div >
1518- < div class ="form-row ">
1519- < label > Description (optionnel)</ label >
1520- < textarea id ="subjectResourceDescription " class ="form-textarea " rows ="2 " placeholder ="Notes sur cette ressource... "> </ textarea >
1521- </ div >
1522- </ div >
1523- < div class ="modal-footer ">
1524- < button class ="btn btn-secondary " onclick ="Modal.close('subjectResourceModal') "> Annuler</ button >
1525- < button class ="btn btn-danger hidden " id ="subjectResourceDeleteBtn "> Supprimer</ button >
1526- < button class ="btn btn-primary " id ="subjectResourceSaveBtn "> Enregistrer</ button >
1527- </ div >
1528- </ div >
1529-
15301431<!-- Quick Add Modal -->
15311432< div class ="modal modal-sm hidden " id ="quickAddModal ">
15321433 < div class ="modal-header ">
@@ -1548,9 +1449,6 @@ <h2>Ajout rapide</h2>
15481449
15491450<!-- ════════════════════ FOCUS OVERLAY ════════════════════ -->
15501451< div class ="focus-overlay " id ="focusOverlay ">
1551- <!-- Background image layer -->
1552- < div class ="focus-bg-wrap " id ="focusBgWrap "> </ div >
1553-
15541452 < canvas id ="focusCanvas "> </ canvas >
15551453
15561454 <!-- Breathing rings -->
0 commit comments