diff --git a/WSR/admin.py b/WSR/admin.py
index 88c7819f7ee2f0ff60d3ee3c5aa357cbbbfa1b4e..2a282912958622d090e1a596d34b42c2f3ac6cea 100644
--- a/WSR/admin.py
+++ b/WSR/admin.py
@@ -4,9 +4,9 @@ from WSR.models import *
 
 # Register your models here.
 admin.site.register(Article)
-admin.site.register(Course)
-admin.site.register(Resultat)
-admin.site.register(Vehicule)
-admin.site.register(Pilote)
+admin.site.register(Race)
+admin.site.register(Result)
+admin.site.register(Vehicle)
+admin.site.register(Driver)
 admin.site.register(Participation)
-admin.site.register(Saison)
\ No newline at end of file
+admin.site.register(Season)
\ No newline at end of file
diff --git a/WSR/migrations/0001_initial.py b/WSR/migrations/0001_initial.py
index f0e0af190cf20cbaf75c11c1e0496e80d250a648..44e07f1a89f97c6af5bf43e65d334562f9d94b8e 100644
--- a/WSR/migrations/0001_initial.py
+++ b/WSR/migrations/0001_initial.py
@@ -1,5 +1,6 @@
-# Generated by Django 4.2.1 on 2023-06-03 15:45
+# Generated by Django 4.2.2 on 2023-06-10 16:59
 
+import datetime
 from django.db import migrations, models
 import django.db.models.deletion
 
@@ -16,71 +17,75 @@ class Migration(migrations.Migration):
             name='Article',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('titre', models.CharField(max_length=100)),
-                ('contenu', models.TextField()),
-                ('date_publication', models.DateTimeField(auto_now_add=True)),
+                ('title', models.CharField(max_length=100)),
+                ('content', models.TextField()),
+                ('publication_date', models.DateTimeField(auto_now_add=True)),
             ],
         ),
         migrations.CreateModel(
-            name='Course',
+            name='Driver',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('nom', models.CharField(max_length=100)),
-                ('circuit', models.CharField(max_length=100)),
-                ('image', models.ImageField(upload_to='course_images')),
+                ('name', models.CharField(max_length=100)),
             ],
         ),
         migrations.CreateModel(
-            name='Pilote',
+            name='Race',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('nom', models.CharField(max_length=100)),
+                ('name', models.CharField(max_length=100)),
+                ('circuit', models.CharField(max_length=100)),
+                ('finishing_position', models.PositiveIntegerField(verbose_name='Finishing Position')),
+                ('image', models.ImageField(upload_to='race_images', verbose_name='Illustration Image')),
+                ('type', models.CharField(choices=[('invitation', 'Invitation'), ('championship', 'Championship'), ('single_race', 'Single Race')], default='single_race', max_length=100)),
+                ('date', models.DateField(default=datetime.date.today)),
             ],
         ),
         migrations.CreateModel(
-            name='Saison',
+            name='Season',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('nom', models.CharField(max_length=100)),
-                ('annee', models.PositiveIntegerField()),
+                ('name', models.CharField(max_length=100)),
+                ('year', models.PositiveIntegerField(verbose_name='Year')),
             ],
         ),
         migrations.CreateModel(
-            name='Vehicule',
+            name='Vehicle',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('marque', models.CharField(max_length=100)),
-                ('modele', models.CharField(max_length=100)),
-                ('annee_fabrication', models.PositiveIntegerField()),
+                ('brand', models.CharField(max_length=100)),
+                ('model', models.CharField(max_length=100, verbose_name='Model')),
+                ('fabrication_year', models.PositiveIntegerField(verbose_name='Fabrication Year')),
             ],
         ),
         migrations.CreateModel(
-            name='Resultat',
+            name='Result',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('position_arrivee', models.PositiveIntegerField()),
-                ('position_depart', models.PositiveIntegerField()),
-                ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.course')),
-                ('pilote', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.pilote')),
+                ('finishing_position', models.PositiveIntegerField(verbose_name='Finishing Position')),
+                ('starting_position', models.PositiveIntegerField(verbose_name='Starting Position')),
+                ('score', models.IntegerField()),
+                ('driver', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.driver')),
+                ('race', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.race')),
             ],
         ),
         migrations.AddField(
-            model_name='pilote',
-            name='vehicule',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.vehicule'),
+            model_name='race',
+            name='season',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.season'),
         ),
         migrations.CreateModel(
             name='Participation',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.course')),
-                ('pilotes', models.ManyToManyField(to='WSR.pilote')),
-                ('saison', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.saison')),
+                ('drivers', models.ManyToManyField(to='WSR.driver')),
+                ('race', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.race')),
+                ('season', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.season')),
             ],
         ),
         migrations.AddField(
-            model_name='course',
-            name='saison',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.saison'),
+            model_name='driver',
+            name='vehicle',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.vehicle', verbose_name='Vehicle'),
         ),
     ]
diff --git a/WSR/migrations/0002_course_date_course_type_alter_course_image_and_more.py b/WSR/migrations/0002_course_date_course_type_alter_course_image_and_more.py
deleted file mode 100644
index 2cf92209c1eb0f0596a0b9a538252241e4436110..0000000000000000000000000000000000000000
--- a/WSR/migrations/0002_course_date_course_type_alter_course_image_and_more.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# Generated by Django 4.2.1 on 2023-06-06 19:52
-
-import datetime
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('WSR', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='course',
-            name='date',
-            field=models.DateField(default=datetime.date.today),
-        ),
-        migrations.AddField(
-            model_name='course',
-            name='type',
-            field=models.CharField(choices=[('invitation', 'Invitation'), ('championnat', 'Championnat'), ('course_simple', 'Course Simple')], default='course_simple', max_length=100),
-        ),
-        migrations.AlterField(
-            model_name='course',
-            name='image',
-            field=models.ImageField(upload_to='course_images', verbose_name="Image d'illustration"),
-        ),
-        migrations.AlterField(
-            model_name='pilote',
-            name='vehicule',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.vehicule', verbose_name='Véhicule'),
-        ),
-        migrations.AlterField(
-            model_name='resultat',
-            name='position_arrivee',
-            field=models.PositiveIntegerField(verbose_name="Position à l'arrivée"),
-        ),
-        migrations.AlterField(
-            model_name='resultat',
-            name='position_depart',
-            field=models.PositiveIntegerField(verbose_name='Position de départ'),
-        ),
-        migrations.AlterField(
-            model_name='saison',
-            name='annee',
-            field=models.PositiveIntegerField(verbose_name='Année'),
-        ),
-        migrations.AlterField(
-            model_name='vehicule',
-            name='annee_fabrication',
-            field=models.PositiveIntegerField(verbose_name='Année de fabrication'),
-        ),
-        migrations.AlterField(
-            model_name='vehicule',
-            name='modele',
-            field=models.CharField(max_length=100, verbose_name='Modèle'),
-        ),
-    ]
diff --git a/WSR/migrations/0003_resultat_score.py b/WSR/migrations/0003_resultat_score.py
deleted file mode 100644
index a2a1d54a6b6a311005428e1e4221dc56e5b6dad8..0000000000000000000000000000000000000000
--- a/WSR/migrations/0003_resultat_score.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.2.1 on 2023-06-06 20:05
-import random
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('WSR', '0002_course_date_course_type_alter_course_image_and_more'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='resultat',
-            name='score',
-            field=models.IntegerField(default=random.randrange(500, 8000, 500)),
-            preserve_default=False,
-        ),
-    ]
diff --git a/WSR/models.py b/WSR/models.py
index 96755091b94b0bbdf95994ec26d9a454d9804fc1..fc5d1e68eade15d9fb45a7b6e56b17e01e3e6200 100644
--- a/WSR/models.py
+++ b/WSR/models.py
@@ -2,72 +2,74 @@ import datetime
 
 from django.db import models
 
-class Saison(models.Model):
-    nom = models.CharField(max_length=100)
-    annee = models.PositiveIntegerField(verbose_name="Année")
+class Season(models.Model):
+    name = models.CharField(max_length=100)
+    year = models.PositiveIntegerField(verbose_name="Year")
 
     def __str__(self):
-        return self.nom
+        return self.name
 
 
-class Pilote(models.Model):
-    nom = models.CharField(max_length=100)
-    vehicule = models.ForeignKey('Vehicule', on_delete=models.CASCADE, verbose_name="Véhicule")
+class Driver(models.Model):
+    name = models.CharField(max_length=100)
+    vehicle = models.ForeignKey('Vehicle', on_delete=models.CASCADE, verbose_name="Vehicle")
 
     def __str__(self):
-        return self.nom
+        return self.name
 
 
-class Vehicule(models.Model):
-    marque = models.CharField(max_length=100)
-    modele = models.CharField(max_length=100, verbose_name="Modèle")
-    annee_fabrication = models.PositiveIntegerField(verbose_name="Année de fabrication")
+class Vehicle(models.Model):
+    brand = models.CharField(max_length=100)
+    model = models.CharField(max_length=100, verbose_name="Model")
+    fabrication_year = models.PositiveIntegerField(verbose_name="Fabrication Year")
 
     def __str__(self):
-        return f"{self.marque} {self.modele}"
+        return f"{self.brand} {self.model}"
 
 
-class Course(models.Model):
-    class TypeCourse(models.TextChoices):
+class Race(models.Model):
+    class RaceType(models.TextChoices):
         INVITATION = "invitation"
-        CHAMPIONNAT = "championnat"
-        COURSE_SIMPLE = "course_simple"
+        CHAMPIONSHIP = "championship"
+        SINGLE_RACE = "single_race"
 
-    nom = models.CharField(max_length=100)
+    name = models.CharField(max_length=100)
     circuit = models.CharField(max_length=100)
-    saison = models.ForeignKey(Saison, on_delete=models.CASCADE)
-    image = models.ImageField(upload_to='course_images', verbose_name="Image d'illustration")
-    type = models.CharField(max_length=100, choices=TypeCourse.choices, default=TypeCourse.COURSE_SIMPLE)
+    finishing_position = models.PositiveIntegerField(verbose_name="Finishing Position")
+    season = models.ForeignKey(Season, on_delete=models.CASCADE)
+    image = models.ImageField(upload_to='race_images', verbose_name="Illustration Image")
+    type = models.CharField(max_length=100, choices=RaceType.choices, default=RaceType.SINGLE_RACE)
     date = models.DateField(default=datetime.date.today)
 
     def __str__(self):
-        return self.nom
+        return self.name
 
 
 class Article(models.Model):
-    titre = models.CharField(max_length=100)
-    contenu = models.TextField()
-    date_publication = models.DateTimeField(auto_now_add=True)
+    title = models.CharField(max_length=100)
+    content = models.TextField()
+    publication_date = models.DateTimeField(auto_now_add=True)
 
     def __str__(self):
-        return self.titre
+        return self.title
 
 
-class Resultat(models.Model):
-    pilote = models.ForeignKey(Pilote, on_delete=models.CASCADE)
-    course = models.ForeignKey(Course, on_delete=models.CASCADE)
-    position_arrivee = models.PositiveIntegerField(verbose_name="Position à l'arrivée")
-    position_depart = models.PositiveIntegerField(verbose_name="Position de départ")
+class Result(models.Model):
+    driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
+    race = models.ForeignKey(Race, on_delete=models.CASCADE)
+    finishing_position = models.PositiveIntegerField(verbose_name="Finishing Position")
+    starting_position = models.PositiveIntegerField(verbose_name="Starting Position")
     score = models.IntegerField()
 
     def __str__(self):
-        return f"{self.pilote} - {self.course}"
+        return f"{self.driver} - {self.race}"
 
 
 class Participation(models.Model):
-    saison = models.ForeignKey(Saison, on_delete=models.CASCADE)
-    course = models.ForeignKey(Course, on_delete=models.CASCADE)
-    pilotes = models.ManyToManyField(Pilote)
+    season = models.ForeignKey(Season, on_delete=models.CASCADE)
+    race = models.ForeignKey(Race, on_delete=models.CASCADE)
+    drivers = models.ManyToManyField(Driver)
 
     def __str__(self):
-        return f"{self.saison} - {self.course}"
+        return f"{self.season} - {self.race}"
+
diff --git a/WSR/templates/home.html b/WSR/templates/home.html
index c40ea9fa3220ac16dca5bdb8fe52b983228480ac..2145f854022dc3f6091754d4f0ff3423f32f32c7 100644
--- a/WSR/templates/home.html
+++ b/WSR/templates/home.html
@@ -26,43 +26,52 @@
 <div class="container vitrine">
     <div class="main-frame eurostile">
         <div>
-            <div class="mid">SAISON 4</div>
-            <div class="large">Chicago</div>
-            <div class="mid">La boucle</div>
+            <div class="mid">{{ last_race_details.season_name }}</div>
+            <div class="large">{{ last_race_details.race.circuit }}</div>
+            <div class="mid">{{ last_race_details.race.name }}</div>
         </div>
         <div class="detail">
-            <div>
-                <div class="title">Billy Rosewood</div>
-                <div class="score">2ème position <br>13 500 PTS</div>
-            </div>
-            <div>
-                <div class="title">John Carter</div>
-                <div class="score">4ème position <br>7 500 PTS</div>
-            </div>
+            {% for stat in last_race_details.results %}
+                <div>
+                    <div class="title">{{ stat.driver_name }}</div>
+                    <div class="score">{{ stat.pos_string }} position <br>{{ stat.score }} PTS</div>
+                </div>
+            {% endfor %}
         </div>
-        <div class="mid">WSR Admis en finale</div>
+        {% if last_race_details.race.finishing_position < 5 %}
+            <div class="mid">WSR Admis en finale</div>
+        {% else %}
+            <div class="mid">WSR recalé</div>
+        {% endif %}
     </div>
     <div class="seconds-frames">
-        <div class="second-frame">
-            <div class="header">
-                <div class="pos">1er</div>
-            </div>
-            <div class="event-type"><i class="fa-solid fa-envelope"></i> Invitation évènement</div>
-            <div class="event-desc">
-                <div class="eurostile w-75">Rockstar Energy Race Series</div>
-                <div class="event-meta-info">Pacific Way</div>
-            </div>
-        </div>
-        <div class="second-frame">
-            <div class="header">
-                <div class="pos second">2ème</div>
-            </div>
-            <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> championnat</div>
-            <div class="event-desc">
-                <div class="eurostile w-75">Séries de courses etnies</div>
-                <div class="event-meta-info">3 manches</div>
+        {% for race in second_frame_races %}
+            <div class="second-frame">
+                <div class="header">
+                    {% if race.finishing_position == 1 %}
+                        <div class="pos">{{ race.pos_string }}</div>
+                    {% else %}
+                        <div class="pos second">{{ race.pos_string }}</div>
+                    {% endif %}
+                </div>
+                {% if race.type == 'invitation' %}
+                    <div class="event-type"><i class="fa-solid fa-envelope"></i> Invitation évènement</div>
+                {% elif race.type == 'championship' %}
+                    <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> Championnat</div>
+                {% else %}
+                    <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> Course simple</div>
+                {% endif %}
+
+                <div class="event-desc">
+                    <div class="eurostile w-75">{{ race.name }}</div>
+                    {% if race.type == 'invitation' %}
+                        <div class="event-meta-info">{{ race.circuit }}</div>
+                    {% else %}
+                        <div class="event-meta-info">3 manches</div>
+                    {% endif %}
+                </div>
             </div>
-        </div>
+        {% endfor %}
     </div>
 </div>
 
@@ -189,7 +198,8 @@
             </div>
         </div>
         <div class="col">
-            <p>Copyright 2023 - World Series Racing ou “WSR” est une marque déposée par Codemasters. <br>Ceci est un projet
+            <p>Copyright 2023 - World Series Racing ou “WSR” est une marque déposée par Codemasters. <br>Ceci est un
+                projet
                 à titre scolaire.</p>
         </div>
         <div class="col"></div>
diff --git a/WSR/views.py b/WSR/views.py
index 5c5a592323b7794ab059984ec917929a868531d9..f847e8b6f0c9a17ad74231118293451444ecae6a 100644
--- a/WSR/views.py
+++ b/WSR/views.py
@@ -1,8 +1,63 @@
 from django.shortcuts import render
 
+from WSR.models import *
+
+
 # Create your views here.
 def home(request):
+    three_last_races = Race.objects.order_by('-date')[:3]
+    last_race = three_last_races[0]
+    last_race_season = last_race.season.name
+    last_race_results = Result.objects.filter(race=last_race)
+
+    for race_result in last_race_results:
+        race_result.driver_name = race_result.driver.name
+        if race_result.finishing_position == 1:
+            race_result.pos_string = "1ère"
+        else:
+            race_result.pos_string = str(race_result.finishing_position) + "ème"
+
+    last_race_details = {
+        'race': last_race,
+        'season_name': last_race_season,
+        'results': last_race_results
+    }
+
+    second_frame_races = []
+
+    for race in three_last_races[1:3]:
+        pos_string = "1er" if race.finishing_position == 1 else str(race.finishing_position) + "ème"
+        race.pos_string = pos_string
+        second_frame_races.append(race)
+
+    six_last_articles = Article.objects.order_by('-publication_date')[:6]
+
+    for article in six_last_articles:
+        article.summary = ' '.join(article.content.split()[:14])
+
+    three_last_races_results = []
+
+    for race in three_last_races:
+        results = Result.objects.filter(race=race)
+        race_results = {
+            'race': race,
+            'results': results
+        }
+
+        for result in results:
+            result.driver_name = result.driver.name
+            result.vehicle_brand = result.driver.vehicle.brand
+            result.vehicle_model = result.driver.vehicle.model
+
+        three_last_races_results.append(race_results)
+
     return render(
         request,
         'home.html',
+        {
+            "last_race_details": last_race_details,
+            "second_frame_races": second_frame_races,
+            "six_last_articles": six_last_articles,
+            "three_last_races_results": three_last_races_results
+        }
     )