diff --git a/microservices/admins_service/admin.py b/microservices/admins_service/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..6922c762a881a275f44b21875a38f775111cdfa6
--- /dev/null
+++ b/microservices/admins_service/admin.py
@@ -0,0 +1,80 @@
+from fastapi import FastAPI, HTTPException
+from pydantic import BaseModel
+from typing import List
+import sqlite3
+
+app = FastAPI()
+
+# SQLite connection
+conn = sqlite3.connect('bikes.db')
+cursor = conn.cursor()
+
+# Create the Admins table if it doesn't exist
+cursor.execute('''
+    CREATE TABLE IF NOT EXISTS Admins (
+        admin_id INTEGER PRIMARY KEY,
+        username TEXT,
+        password TEXT,
+        email TEXT,
+        phone_number TEXT
+    )
+''')
+conn.commit()
+
+
+# Admin model
+class Admin(BaseModel):
+    username: str
+    password: str
+    email: str
+    phone_number: str
+
+
+# Routes
+@app.post("/admins/", response_model=Admin)
+async def create_admin(admin: Admin):
+    cursor.execute('''
+        INSERT INTO Admins 
+        (username, password, email, phone_number) 
+        VALUES (?, ?, ?, ?)
+    ''', (
+        admin.username, admin.password, admin.email, admin.phone_number
+    ))
+    conn.commit()
+    return admin
+
+
+@app.get("/admins/", response_model=List[Admin])
+async def read_admins():
+    cursor.execute('SELECT * FROM Admins')
+    admins = cursor.fetchall()
+    return admins
+
+
+@app.get("/admins/{admin_id}", response_model=Admin)
+async def read_admin(admin_id: int):
+    cursor.execute('SELECT * FROM Admins WHERE admin_id = ?', (admin_id,))
+    admin = cursor.fetchone()
+    if admin is None:
+        raise HTTPException(status_code=404, detail="Admin not found")
+    return admin
+
+
+@app.put("/admins/{admin_id}", response_model=Admin)
+async def update_admin(admin_id: int, admin: Admin):
+    cursor.execute('''
+        UPDATE Admins 
+        SET username = ?, password = ?, email = ?, phone_number = ?
+        WHERE admin_id = ?
+    ''', (
+        admin.username, admin.password, admin.email, admin.phone_number, admin_id
+    ))
+    conn.commit()
+    return admin
+
+
+@app.delete("/admins/{admin_id}")
+async def delete_admin(admin_id: int):
+    cursor.execute('DELETE FROM Admins WHERE admin_id = ?', (admin_id,))
+    conn.commit()
+    return {"message": "Admin deleted successfully"}
diff --git a/microservices/admins_service/bikes.db b/microservices/admins_service/bikes.db
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/admins_service/main.py b/microservices/admins_service/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/admins_service/requirements.txt b/microservices/admins_service/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/bikes_service/bikes.db b/microservices/bikes_service/bikes.db
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/bikes_service/bikes.py b/microservices/bikes_service/bikes.py
new file mode 100644
index 0000000000000000000000000000000000000000..80520b5d691db6bcc2e2a00e8bb7c998aed5931d
--- /dev/null
+++ b/microservices/bikes_service/bikes.py
@@ -0,0 +1,89 @@
+from fastapi import FastAPI, HTTPException
+from pydantic import BaseModel
+from typing import List
+import sqlite3
+
+app = FastAPI()
+
+# SQLite connection
+conn = sqlite3.connect('bikes.db')
+cursor = conn.cursor()
+
+# Create the Bikes table if it doesn't exist
+cursor.execute('''
+    CREATE TABLE IF NOT EXISTS Bikes (
+        bike_id INTEGER PRIMARY KEY,
+        model TEXT,
+        status TEXT,
+        location TEXT,
+        condition TEXT,
+        price_per_hour DECIMAL(10, 2),
+        last_maintenance_date DATE,
+        maintenance_history TEXT
+    )
+''')
+conn.commit()
+
+
+# Bike model
+class Bike(BaseModel):
+    model: str
+    status: str
+    location: str
+    condition: str
+    price_per_hour: float
+    last_maintenance_date: str
+    maintenance_history: str
+
+
+# Routes
+@app.post("/bikes/", response_model=Bike)
+async def create_bike(bike: Bike):
+    cursor.execute('''
+        INSERT INTO Bikes 
+        (model, status, location, condition, price_per_hour, last_maintenance_date, maintenance_history) 
+        VALUES (?, ?, ?, ?, ?, ?, ?)
+    ''', (
+        bike.model, bike.status, bike.location, bike.condition,
+        bike.price_per_hour, bike.last_maintenance_date, bike.maintenance_history
+    ))
+    conn.commit()
+    return bike
+
+
+@app.get("/bikes/", response_model=List[Bike])
+async def read_bikes():
+    cursor.execute('SELECT * FROM Bikes')
+    bikes = cursor.fetchall()
+    return bikes
+
+
+@app.get("/bikes/{bike_id}", response_model=Bike)
+async def read_bike(bike_id: int):
+    cursor.execute('SELECT * FROM Bikes WHERE bike_id = ?', (bike_id,))
+    bike = cursor.fetchone()
+    if bike is None:
+        raise HTTPException(status_code=404, detail="Bike not found")
+    return bike
+
+
+@app.put("/bikes/{bike_id}", response_model=Bike)
+async def update_bike(bike_id: int, bike: Bike):
+    cursor.execute('''
+        UPDATE Bikes 
+        SET model = ?, status = ?, location = ?, condition = ?, 
+        price_per_hour = ?, last_maintenance_date = ?, maintenance_history = ?
+        WHERE bike_id = ?
+    ''', (
+        bike.model, bike.status, bike.location, bike.condition,
+        bike.price_per_hour, bike.last_maintenance_date, bike.maintenance_history, bike_id
+    ))
+    conn.commit()
+    return bike
+
+
+@app.delete("/bikes/{bike_id}")
+async def delete_bike(bike_id: int):
+    cursor.execute('DELETE FROM Bikes WHERE bike_id = ?', (bike_id,))
+    conn.commit()
+    return {"message": "Bike deleted successfully"}
diff --git a/microservices/bikes_service/main.py b/microservices/bikes_service/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/bikes_service/requirements.txt b/microservices/bikes_service/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/rentals_service/main.py b/microservices/rentals_service/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/rentals_service/rentals.db b/microservices/rentals_service/rentals.db
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/rentals_service/rentals.py b/microservices/rentals_service/rentals.py
new file mode 100644
index 0000000000000000000000000000000000000000..d183201077a061495db93c2f74dd7ba418f2330a
--- /dev/null
+++ b/microservices/rentals_service/rentals.py
@@ -0,0 +1,109 @@
+from fastapi import FastAPI, HTTPException
+from pydantic import BaseModel
+from typing import List
+import sqlite3
+
+app = FastAPI()
+
+# SQLite connection
+conn = sqlite3.connect('bikes.db')
+cursor = conn.cursor()
+
+# Create the Rentals table if it doesn't exist
+cursor.execute('''
+    CREATE TABLE IF NOT EXISTS Rentals (
+        rental_id INTEGER PRIMARY KEY,
+        id INT,
+        user_id INT,
+        bike_id INT,
+        year INT,
+        hour INT,
+        season INT,
+        holiday BOOLEAN,
+        workingday BOOLEAN,
+        weather INT,
+        temp DECIMAL(5, 2),
+        atemp DECIMAL(5, 2),
+        humidity DECIMAL(5, 2),
+        windspeed DECIMAL(5, 2),
+        count INT,
+        FOREIGN KEY (user_id) REFERENCES Users(user_id),
+        FOREIGN KEY (bike_id) REFERENCES Bikes(bike_id)
+    )
+''')
+conn.commit()
+
+
+# Rental model
+class Rental(BaseModel):
+    id: int
+    user_id: int
+    bike_id: int
+    year: int
+    hour: int
+    season: int
+    holiday: bool
+    workingday: bool
+    weather: int
+    temp: float
+    atemp: float
+    humidity: float
+    windspeed: float
+    count: int
+
+
+# Routes
+@app.post("/rentals/", response_model=Rental)
+async def create_rental(rental: Rental):
+    cursor.execute('''
+        INSERT INTO Rentals 
+        (id, user_id, bike_id, year, hour, season, holiday, workingday, weather, temp, atemp, humidity, windspeed, count) 
+        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+    ''', (
+        rental.id, rental.user_id, rental.bike_id, rental.year, rental.hour,
+        rental.season, rental.holiday, rental.workingday, rental.weather,
+        rental.temp, rental.atemp, rental.humidity, rental.windspeed, rental.count
+    ))
+    conn.commit()
+    return rental
+
+
+@app.get("/rentals/", response_model=List[Rental])
+async def read_rentals():
+    cursor.execute('SELECT * FROM Rentals')
+    rentals = cursor.fetchall()
+    return rentals
+
+
+@app.get("/rentals/{rental_id}", response_model=Rental)
+async def read_rental(rental_id: int):
+    cursor.execute('SELECT * FROM Rentals WHERE rental_id = ?', (rental_id,))
+    rental = cursor.fetchone()
+    if rental is None:
+        raise HTTPException(status_code=404, detail="Rental not found")
+    return rental
+
+
+@app.put("/rentals/{rental_id}", response_model=Rental)
+async def update_rental(rental_id: int, rental: Rental):
+    cursor.execute('''
+        UPDATE Rentals 
+        SET id = ?, user_id = ?, bike_id = ?, year = ?, hour = ?, season = ?, 
+        holiday = ?, workingday = ?, weather = ?, temp = ?, atemp = ?, 
+        humidity = ?, windspeed = ?, count = ?
+        WHERE rental_id = ?
+    ''', (
+        rental.id, rental.user_id, rental.bike_id, rental.year, rental.hour,
+        rental.season, rental.holiday, rental.workingday, rental.weather,
+        rental.temp, rental.atemp, rental.humidity, rental.windspeed,
+        rental.count, rental_id
+    ))
+    conn.commit()
+    return rental
+
+
+@app.delete("/rentals/{rental_id}")
+async def delete_rental(rental_id: int):
+    cursor.execute('DELETE FROM Rentals WHERE rental_id = ?', (rental_id,))
+    conn.commit()
+    return {"message": "Rental deleted successfully"}
diff --git a/microservices/rentals_service/requirements.txt b/microservices/rentals_service/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/reviews_service/main.py b/microservices/reviews_service/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/reviews_service/requirements.txt b/microservices/reviews_service/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/reviews_service/review.db b/microservices/reviews_service/review.db
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/reviews_service/reviews.py b/microservices/reviews_service/reviews.py
new file mode 100644
index 0000000000000000000000000000000000000000..7034387f149d8537381a76a8e4f4bde86582700e
--- /dev/null
+++ b/microservices/reviews_service/reviews.py
@@ -0,0 +1,85 @@
+from fastapi import FastAPI, HTTPException
+from pydantic import BaseModel
+from typing import List
+import sqlite3
+
+app = FastAPI()
+
+# SQLite connection
+conn = sqlite3.connect('bikes.db')
+cursor = conn.cursor()
+
+# Create the Reviews table if it doesn't exist
+cursor.execute('''
+    CREATE TABLE IF NOT EXISTS Reviews (
+        review_id INTEGER PRIMARY KEY,
+        user_id INT,
+        bike_id INT,
+        rating INT,
+        comment TEXT,
+        review_date DATETIME,
+        FOREIGN KEY (user_id) REFERENCES Users(user_id),
+        FOREIGN KEY (bike_id) REFERENCES Bikes(bike_id)
+    )
+''')
+conn.commit()
+
+
+# Review model
+class Review(BaseModel):
+    user_id: int
+    bike_id: int
+    rating: int
+    comment: str
+    review_date: str
+
+
+# Routes
+@app.post("/reviews/", response_model=Review)
+async def create_review(review: Review):
+    cursor.execute('''
+        INSERT INTO Reviews 
+        (user_id, bike_id, rating, comment, review_date) 
+        VALUES (?, ?, ?, ?, ?)
+    ''', (
+        review.user_id, review.bike_id, review.rating, review.comment, review.review_date
+    ))
+    conn.commit()
+    return review
+
+
+@app.get("/reviews/", response_model=List[Review])
+async def read_reviews():
+    cursor.execute('SELECT * FROM Reviews')
+    reviews = cursor.fetchall()
+    return reviews
+
+
+@app.get("/reviews/{review_id}", response_model=Review)
+async def read_review(review_id: int):
+    cursor.execute('SELECT * FROM Reviews WHERE review_id = ?', (review_id,))
+    review = cursor.fetchone()
+    if review is None:
+        raise HTTPException(status_code=404, detail="Review not found")
+    return review
+
+
+@app.put("/reviews/{review_id}", response_model=Review)
+async def update_review(review_id: int, review: Review):
+    cursor.execute('''
+        UPDATE Reviews 
+        SET user_id = ?, bike_id = ?, rating = ?, comment = ?, review_date = ?
+        WHERE review_id = ?
+    ''', (
+        review.user_id, review.bike_id, review.rating, review.comment,
+        review.review_date, review_id
+    ))
+    conn.commit()
+    return review
+
+
+@app.delete("/reviews/{review_id}")
+async def delete_review(review_id: int):
+    cursor.execute('DELETE FROM Reviews WHERE review_id = ?', (review_id,))
+    conn.commit()
+    return {"message": "Review deleted successfully"}
diff --git a/microservices/users_service/main.py b/microservices/users_service/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/users_service/requirements.txt b/microservices/users_service/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/users_service/users.db b/microservices/users_service/users.db
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/microservices/users_service/users.py b/microservices/users_service/users.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391