Compare commits

...

2 Commits
main ... dev

Author SHA1 Message Date
Valentin Moguérou e96a7fb5b7 chantier 2023-12-26 20:57:22 +01:00
Valentin Moguérou 5ef37401cf chantier 2023-12-26 20:52:51 +01:00
21 changed files with 1 additions and 532 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.old

View File

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Bienvenue en M103</title>
<style>
body {
background-image: url("/M103/salle.jpg");
background-size: 100%;
background-attachment: scroll;
}
</style>
</head>
<body>
<h1>Bienvenue en M103.</h1>
<a href="/M103/deconnexion">Se déconnecter</a>
</body>
</html>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Ouverture de la porte</title>
</head>
<body>
Bravo, la porte est ouverte.
</body>
</html>

View File

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Porte fermée.</title>
</head>
<body>
<h1>La porte est fermée ! La prochaine fois : lisez les instructions.</h1>
<img src="/res/door_safety.png">
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

View File

@ -1 +0,0 @@
X n'est pas mort.

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,55 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/res/navigator.css" rel="stylesheet" type="text/css">
<link href="/res/style.css" rel="stylesheet" type="text/css">
<title>MP2I. vms?</title>
</head>
<body>
<header>
<div class="unified_navigator">
<a class="logo" href="https://mp2i-vms.fr"><img src="https://mp2i-vms.fr/res/icon.png"><strong>mp2i-vms.fr</strong></a>
<div class="link"><a href="https://mp2i-vms.fr/pages.html">Pages personnelles</a></div>
<div class="link"><a href="https://git.mp2i-vms.fr/">Git</a></div>
<div class="link"><a href="https://play.mp2i-vms.fr/">Minecraft</a></div>
</div>
</header>
<main>
<h1>Le site des MP2I. V.M.S ?</h1>
<blockquote>Vous me suivez ? oui, non, peut être ?</blockquote>
<h2>Pourquoi la MP2I est la meilleure filière ?</h2>
<p>Dans la jungle inexplorée de Saint Louis se trouve une classe spéciale, selon certains, ils ne se lavent pas selon d'autres ils ont choisi cette filière dans le seul but d'échapper à la chimie. Rien n'est certain mais il demeure que la M103 est occupée par une espèce bien étrange où cohabitent des espèces étranges qui rédigent leurs systèmes avec des inconnues en UwU ou encore résolvent des équations avec des congruences douteuses qui sait on peut même en trouver qui cherchent a cracker les codes d'un site de prof dans le seul but de voler une mascotte. yay c'est bô</p>
<ol>
<li>Pas de chimie</li>
<li>Pas de chimie</li>
<li>Pas de chimie (<span style="text-decoration:overline;">PCSI</span>)</li>
<li>De l'informatique</li>
<li>Autant de maths que les MPSI, mais mode VMS activé.</li>
</ol>
<p>
$ ssh www.mp2i-vms.fr<br>
(vms)$ cat index.html
</p>
<div class="porte">
<a href="/M103">Entrer en M103.</a>
</div>
</main>
<footer>
&copy; 2023 mp2i-vms.fr
</footer>
</body>
</html>
<!-- normal que tout le monde ai accès au /vms ?-->

View File

@ -1,39 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/res/navigator.css" rel="stylesheet" type="text/css">
<link href="/res/style.css" rel="stylesheet" type="text/css">
<title>Index des pages personnelles</title>
</head>
<body>
<header>
<div class="unified_navigator">
<a class="logo" href="https://mp2i-vms.fr"><img src="https://mp2i-vms.fr/res/icon.png"><strong>mp2i-vms.fr</strong></a>
<div class="link"><a href="https://mp2i-vms.fr/pages.html">Pages personnelles</a></div>
<div class="link"><a href="https://git.mp2i-vms.fr/">Git</a></div>
<div class="link"><a href="https://play.mp2i-vms.fr/">Minecraft</a></div>
</div>
</header>
<main>
<h1>Index des pages personnelles</h1>
<ul>
<li><a href="/~alexandre/">Alexandre Aboujaib</a></li>
<li><a href="/~arthur/">Arthur Boit</a></li>
<li><a href="/~joseph/">Joseph Daguin</a></li>
<li><a href="/~valentin/">Valentin Moguérou</a></li>
<li><a href="/~matheo/">Matheo Mohellebi</a></li>
<li><a href="/~zaitara/">Corentin Ottavi</a></li>
<li><a href="/~gaetan/">Gaetan Roux</a></li>
<li><a href="/~alexian/">Alexian Ponce</a></li>
<li><a href="/~stacky/">Stacky Stackerman</a></li>
<li><a href="/~benoit/">Benoit Vandroux</a></li>
<li><a href="/~thibaud/">Thibaud Veyssière</a></li>
</ul>
</main>
<footer>
&copy; 2023 mp2i-vms.fr
</footer>
</body>
</html>

View File

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Entrer en M103</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/res/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<main class="login">
<h1>Authentification requise.</h1>
<p>(désolé pour les non-MP2I qui veulent faire de l'espionnage, vous vous attaquez à la mauvaise filière.)</p>
<form method="POST" action="/M103/connexion">
<div class="champ">
<label for="username">Nom d'utilisateur :</label>
<input id="username" type="text" name="httpd_username" value="" />
</div>
<div class="champ">
<label for="password">Mot de passe: </label>
<input id="password" type="password" name="httpd_password" value="" />
</div>
<input type="submit" name="login" value="Login" />
</form>
</main>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

View File

@ -1,36 +0,0 @@
.unified_navigator {
font-family: sans-serif;
font-size: 1em;
padding: 10px 50px;
display: flex;
justify-content: flex-start;
gap: 40px;
background: rgb(42,25,93);
background: linear-gradient(90deg, rgba(42,25,93,1) 8%, rgba(60,11,89,1) 49%, rgba(34,0,71,1) 82%);
color: white;
box-shadow: 0 5px 5px rgba(32,32,32,127);
line-height: 3em;
}
@media screen and (max-size: 800px)
{
.unified_navigator {
flex-direction: column;
}
}
.unified_navigator a:link, .unified_navigator a:visited {
color: #dddddd;
text-decoration: none;
font-weight: 500;
}
.unified_navigator a:hover {
color: #ffffff;
}
.unified_navigator img {
height: 2em;
vertical-align: middle;
margin-right: 1em;
}

View File

@ -1,118 +0,0 @@
/*
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
*/
@font-face {
font-family: Hack;
src: url("/res/Hack-Regular.ttf");
}
@font-face {
font-family: Hack;
font-weight: bold;
src: url("/res/Hack-Bold.ttf");
}
@font-face {
font-family: Hack;
font-style: italic;
src: url("/res/Hack-Italic.ttf");
}
@font-face {
font-family: Hack;
font-weight: bold;
font-style: italic;
src: url("/res/Hack-BoldItalic");
}
body {
background-color: #222;
color: white;
font-family: "Flexi IBM VGA True", monospace;
margin: 0;
}
main {
margin: 20px;
}
footer {
margin-top: 50px;
text-align: center;
}
p, ul, ol {
margin: 20px 0;
}
a:link, a:visited {
color: white;
}
main a:hover {
background-color: green;
}
::selection {
background-color: green;
}
.porte {
display: block;
margin: 15px;
text-align: center;
font: inherit;
}
.porte a:link, .porte a:visited, .login input[type=submit] {
color: white;
padding: 10px;
border: 2px solid white;
font: inherit;
background-color: #222;
}
.porte a:hover {
background-color: #333;
}
main.login {
width: clamp(350px, 50%, 1000px);
margin: auto;
}
main.login h1 {
text-align: center;
}
form {
width: clamp(300px, 40%, 400px);
margin: 50px auto;
text-align: center;
}
form .champ {
margin: 15px 0;
}
form .champ label {
display: block;
margin: 5px 0;
}
input[type=text], input[type=password] {
box-sizing: border-box;
display: block;
padding: 10px;
background-color: #222;
color: white;
width: 100%;
border: 1px solid white;
font-family: inherit;
}

View File

@ -1,46 +0,0 @@
Source,Cible
Matteo,Pierrick
Pierrick,Mathéo
Mathéo,Jérémie
Jérémie,Youssef
Youssef,Roman R
Roman R,Célian
Célian,Thibaud
Thibaud,Anas
Anas,Aurélien
Aurélien,Dany
Dany,Yassine
Yassine,Simon
Simon,Lucas
Lucas,Luan
Luan,Katell
Katell,Grégoire
Grégoire,Mithushan
Mithushan,Marine
Marine,Evelyn
Evelyn,Mihnea
Mihnea,Louis
Louis,Nicolas
Nicolas,Gaëtan
Gaëtan,Mathis
Mathis,Adrien
Adrien,Alexian
Alexian,Matthias
Matthias,Maël
Maël,FG
FG,Amélie
Amélie,Corentin
Corentin,Dylan
Dylan,Joseph
Joseph,Valentin
Valentin,Roman B
Roman B,Jonathan
Jonathan,Hao
Hao,Benoît
Benoît,Gabriel
Gabriel,Lina
Lina,Alexandre
Alexandre,Raphaël
Raphaël,Arthur
Arthur,George
George,Matteo
1 Source Cible
2 Matteo Pierrick
3 Pierrick Mathéo
4 Mathéo Jérémie
5 Jérémie Youssef
6 Youssef Roman R
7 Roman R Célian
8 Célian Thibaud
9 Thibaud Anas
10 Anas Aurélien
11 Aurélien Dany
12 Dany Yassine
13 Yassine Simon
14 Simon Lucas
15 Lucas Luan
16 Luan Katell
17 Katell Grégoire
18 Grégoire Mithushan
19 Mithushan Marine
20 Marine Evelyn
21 Evelyn Mihnea
22 Mihnea Louis
23 Louis Nicolas
24 Nicolas Gaëtan
25 Gaëtan Mathis
26 Mathis Adrien
27 Adrien Alexian
28 Alexian Matthias
29 Matthias Maël
30 Maël FG
31 FG Amélie
32 Amélie Corentin
33 Corentin Dylan
34 Dylan Joseph
35 Joseph Valentin
36 Valentin Roman B
37 Roman B Jonathan
38 Jonathan Hao
39 Hao Benoît
40 Benoît Gabriel
41 Gabriel Lina
42 Lina Alexandre
43 Alexandre Raphaël
44 Raphaël Arthur
45 Arthur George
46 George Matteo

View File

@ -1,169 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Graphe du Secret Santa</title>
<title>D3.js Interactive Cycle Graph with Alternating Curved Arrows</title>
<script src="https://d3js.org/d3.v5.min.js"></script>
<style>
body, html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
svg {
display: block;
}
.node {
cursor: pointer;
}
.legend text {
font-size: 10px;
font-family: sans-serif;
text-anchor: start;
}
</style>
</head>
<body>
<script>
// Données du graphe
d3.csv("santa.csv").then(function(data) {
// Dimensions du SVG en plein écran
const width = window.innerWidth;
const height = window.innerHeight;
const uniqueNames = data.map(d => d.Source);
// Création des nœuds avec des positions initiales
const nodes = uniqueNames.map((name, index) => ({id: index, label: name}));
const links = data.map((d, i) => ({
source: i,
target: uniqueNames.indexOf(d.Cible)
}));
links.push({ source: 0, target: 1 });
// Création de la force de simulation avec une force de répulsion plus forte
const simulation = d3.forceSimulation(nodes)
.force("charge", d3.forceManyBody().strength(-300))
.force("link", d3.forceLink(links).distance(100))
.force("center", d3.forceCenter(width / 2, height / 2))
.force("collide", d3.forceCollide().radius(20))
.force("x", d3.forceX().strength(0.1).x(width / 2))
.force("y", d3.forceY().strength(0.1).y(height / 2));
// Création du SVG avec zoom
const svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}))
.append("g");
// Ajout des flèches
svg.append("defs").selectAll("marker")
.data(["arrow"])
.enter().append("marker")
.attr("id", function (d) {
return d;
})
.attr("viewBox", "0 -5 10 10")
.attr("refX", 18)
.attr("refY", 0)
.attr("markerWidth", 4)
.attr("markerHeight", 4)
.attr("orient", "auto")
.append("path")
.attr("d", "M0,-5L10,0L0,5")
.attr("class", "arrow-head");
// Ajout des liens
const link = svg.selectAll("path")
.data(links)
.enter().append("path")
.attr("fill", "none")
.attr("stroke", "#ee288b")
.attr("stroke-width", "2")
.attr("marker-end", "url(#arrow)");
// Ajout des nœuds
const node = svg.selectAll(".node")
.data(nodes)
.enter().append("g")
.attr("class", "node")
.call(d3.drag()
.on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended));
node.append("circle")
.attr("r", 3) // Taille des points noirs
.attr("fill", "#000"); // Couleur des points noirs
// Ajout des légendes pour les nœuds
const legend = svg.selectAll(".legend")
.data(nodes)
.enter().append("g")
.attr("class", "legend")
.attr("transform", function (d) {
return "translate(" + (d.x + 10) + "," + (d.y) + ")";
});
legend.append("text")
.text(function (d) {
return d.label;
});
// Met à jour la position des éléments à chaque itération de la simulation
simulation.on("tick", function () {
link.attr("d", function (d) {
const dx = d.target.x - d.source.x,
dy = d.target.y - d.source.y,
dr = Math.sqrt(dx * dx + dy * dy),
sweep = 1;
return "M" + d.source.x + "," + d.source.y +
"A" + dr + "," + dr + " 0 0," + sweep + " " + d.target.x + "," + d.target.y;
});
node.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
});
legend.attr("transform", function (d) {
return "translate(" + (d.x + 10) + "," + (d.y) + ")";
});
});
// Fonctions de gestion du glisser-déposer
function dragstarted(d) {
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
d.fx = d.x;
d.fy = d.y;
}
function dragged(d) {
d.fx = d3.event.x;
d.fy = d3.event.y;
}
function dragended(d) {
if (!d3.event.active) simulation.alphaTarget(0);
d.fx = null;
d.fy = null;
}
});
</script>
</body>
</html>