diff --git a/src/main/java/shape/Rectangle.java b/src/main/java/shape/Rectangle.java
index b0e90627b6345f22ac31ab8bf5fb40f81e4d4f66..34b41f8320caad6badd8642783e220b96411ec4f 100644
--- a/src/main/java/shape/Rectangle.java
+++ b/src/main/java/shape/Rectangle.java
@@ -4,24 +4,36 @@ import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 
-public class Rectangle implements Shape{
-    Color color;
-    Rectangle(Color color, Point2D point0, Point2D point1){
+public class Rectangle implements Shape {
+    private Color color;
+    private Point2D point0, point1;
+
+    public Rectangle(Color color, Point2D point0, Point2D point1) {
         this.color = color;
+        this.point0 = point0;
+        this.point1 = point1;
     }
 
     @Override
     public int pointsCount() {
-        return 0;
+        return 2;  // Un rectangle a 2 points (deux coins opposés)
     }
 
     @Override
     public Point2D point(int index) {
-        return null;
+        if (index == 0) {
+            return point0;
+        } else if (index == 1) {
+            return point1;
+        }
+        throw new IndexOutOfBoundsException("Rectangle has only 2 points.");
     }
 
     @Override
     public void draw(GraphicsContext context) {
-
+        context.setStroke(color);
+        context.strokeRect(point0.getX(), point0.getY(),
+                point1.getX() - point0.getX(),
+                point1.getY() - point0.getY());
     }
 }