diff --git a/WSR/migrations/0001_initial.py b/WSR/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0e0af190cf20cbaf75c11c1e0496e80d250a648
--- /dev/null
+++ b/WSR/migrations/0001_initial.py
@@ -0,0 +1,86 @@
+# Generated by Django 4.2.1 on 2023-06-03 15:45
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            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)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Course',
+            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')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Pilote',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('nom', models.CharField(max_length=100)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Saison',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('nom', models.CharField(max_length=100)),
+                ('annee', models.PositiveIntegerField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Vehicule',
+            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()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Resultat',
+            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')),
+            ],
+        ),
+        migrations.AddField(
+            model_name='pilote',
+            name='vehicule',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.vehicule'),
+        ),
+        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')),
+            ],
+        ),
+        migrations.AddField(
+            model_name='course',
+            name='saison',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.saison'),
+        ),
+    ]
diff --git a/WSR/models.py b/WSR/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..2c9133fa2d0337ec3f7f3a8d75a4d6cd4dedb100 100644
--- a/WSR/models.py
+++ b/WSR/models.py
@@ -1,3 +1,63 @@
 from django.db import models
 
-# Create your models here.
+class Saison(models.Model):
+    nom = models.CharField(max_length=100)
+    annee = models.PositiveIntegerField()
+
+    def __str__(self):
+        return self.nom
+
+
+class Pilote(models.Model):
+    nom = models.CharField(max_length=100)
+    vehicule = models.ForeignKey('Vehicule', on_delete=models.CASCADE)
+
+    def __str__(self):
+        return self.nom
+
+
+class Vehicule(models.Model):
+    marque = models.CharField(max_length=100)
+    modele = models.CharField(max_length=100)
+    annee_fabrication = models.PositiveIntegerField()
+
+    def __str__(self):
+        return f"{self.marque} {self.modele}"
+
+
+class Course(models.Model):
+    nom = 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')
+
+    def __str__(self):
+        return self.nom
+
+
+class Article(models.Model):
+    titre = models.CharField(max_length=100)
+    contenu = models.TextField()
+    date_publication = models.DateTimeField(auto_now_add=True)
+
+    def __str__(self):
+        return self.titre
+
+
+class Resultat(models.Model):
+    pilote = models.ForeignKey(Pilote, on_delete=models.CASCADE)
+    course = models.ForeignKey(Course, on_delete=models.CASCADE)
+    position_arrivee = models.PositiveIntegerField()
+    position_depart = models.PositiveIntegerField()
+
+    def __str__(self):
+        return f"{self.pilote} - {self.course}"
+
+
+class Participation(models.Model):
+    saison = models.ForeignKey(Saison, on_delete=models.CASCADE)
+    course = models.ForeignKey(Course, on_delete=models.CASCADE)
+    pilotes = models.ManyToManyField(Pilote)
+
+    def __str__(self):
+        return f"{self.saison} - {self.course}"