Index: src/main/java/com/example/skychasemk/controller/ApplicationUserController.java
===================================================================
--- src/main/java/com/example/skychasemk/controller/ApplicationUserController.java	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/java/com/example/skychasemk/controller/ApplicationUserController.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -2,4 +2,5 @@
 
 import com.example.skychasemk.dto.ApplicationUserDTO;
+import com.example.skychasemk.dto.ApplicationUserLoginDTO;
 import com.example.skychasemk.model.ApplicationUser;
 import com.example.skychasemk.services.ApplicationUserService;
@@ -8,4 +9,7 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
 
 @RestController
@@ -22,4 +26,10 @@
         return ResponseEntity.ok("User saved successfully");
     }
-
+    @PostMapping("/login")
+    public ResponseEntity<Map<String,Long>> loginUser(@Valid @RequestBody ApplicationUserLoginDTO userDTO) {
+        ApplicationUser loginUser = userService.findByEmail(userDTO);
+        Map<String,Long> response = new HashMap<>();
+        response.put("userId",loginUser.getUserid());
+        return ResponseEntity.ok(response);
+    }
 }
Index: src/main/java/com/example/skychasemk/dto/ApplicationUserDTO.java
===================================================================
--- src/main/java/com/example/skychasemk/dto/ApplicationUserDTO.java	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/java/com/example/skychasemk/dto/ApplicationUserDTO.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -22,4 +22,12 @@
     private String password;
 
-    private String phoneNumber;
+    private String phone_number;
+
+    public String getPhone_number() {
+        return phone_number;
+    }
+
+    public void setPhone_number(String phone_number) {
+        this.phone_number = phone_number;
+    }
 }
Index: src/main/java/com/example/skychasemk/dto/ApplicationUserLoginDTO.java
===================================================================
--- src/main/java/com/example/skychasemk/dto/ApplicationUserLoginDTO.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
+++ src/main/java/com/example/skychasemk/dto/ApplicationUserLoginDTO.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -0,0 +1,17 @@
+package com.example.skychasemk.dto;
+
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+public class ApplicationUserLoginDTO {
+
+    @Email
+        @NotBlank
+        private String email;
+
+    public String getEmail() {
+        return email;
+    }
+}
Index: src/main/java/com/example/skychasemk/model/ApplicationUser.java
===================================================================
--- src/main/java/com/example/skychasemk/model/ApplicationUser.java	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/java/com/example/skychasemk/model/ApplicationUser.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -31,5 +31,5 @@
     @Column(name = "phone_number")
 
-    private String phoneNumber;
+    private String phone_number;
 
     @Column(name = "date_joined")
@@ -41,3 +41,6 @@
     }
 
+    public void setPhoneNumber(String phoneNumber) {
+        this.phone_number = phoneNumber;
+    }
 }
Index: src/main/java/com/example/skychasemk/repository/ApplicationUserRepository.java
===================================================================
--- src/main/java/com/example/skychasemk/repository/ApplicationUserRepository.java	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/java/com/example/skychasemk/repository/ApplicationUserRepository.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -11,6 +11,7 @@
 @Repository
 public interface ApplicationUserRepository extends JpaRepository<ApplicationUser, Long> {
-    Optional<ApplicationUser> findByEmail(String email);
     @Query("SELECT u FROM ApplicationUser u WHERE u.userid = :id")
     Optional<ApplicationUser> getUserById(@Param("id") Long userid);
+    @Query("SELECT u FROM ApplicationUser  u WHERE u.email=:email")
+    Optional<ApplicationUser> findByEmail(@Param("email") String email);
 }
Index: src/main/java/com/example/skychasemk/services/ApplicationUserService.java
===================================================================
--- src/main/java/com/example/skychasemk/services/ApplicationUserService.java	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/java/com/example/skychasemk/services/ApplicationUserService.java	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -2,12 +2,13 @@
 
 import com.example.skychasemk.dto.ApplicationUserDTO;
+import com.example.skychasemk.dto.ApplicationUserLoginDTO;
 import com.example.skychasemk.model.ApplicationUser;
 import com.example.skychasemk.repository.ApplicationUserRepository;
 import jakarta.transaction.Transactional;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.time.Instant;
-import java.time.LocalDate;
+import java.util.Optional;
 //import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
@@ -32,8 +33,17 @@
         user.setEmail(userDTO.getEmail());
         user.setPassword(userDTO.getPassword());
-        user.setPhoneNumber(userDTO.getPhoneNumber());
+        user.setPhoneNumber(userDTO.getPhone_number());
         ApplicationUser savedUser = userRepository.save(user);
         userRepository.flush();
         return savedUser;
     }
+
+    public ApplicationUser findByEmail(@Valid ApplicationUserLoginDTO userDTO) {
+        if (userRepository.findByEmail(userDTO.getEmail()).isEmpty()) {
+            throw new RuntimeException("User not registered");
+        } else {
+            Optional<ApplicationUser> userId = userRepository.findByEmail(userDTO.getEmail());
+            return userId.get();
+        }
+    }
 }
Index: src/main/resources/static/FlightSearch.html
===================================================================
--- src/main/resources/static/FlightSearch.html	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/resources/static/FlightSearch.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -8,21 +8,215 @@
     <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
+    <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css'>
+    <style>
+        body {
+            background: url('images/flight.jpg') no-repeat center center fixed;
+            background-size: cover;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+            height: 100vh;
+            margin: 0;
+            font-family: Arial, sans-serif;
+        }
+
+        .header {
+            position: absolute;
+            top: 0;
+            left: 0;
+            display: flex;
+            align-items: center;
+            background-color: rebeccapurple;
+            padding: 10px;
+            width: 100%;
+            z-index: 10;
+        }
+        .header img {
+            width: 40px;
+            height: 40px;
+            margin-right: 20px;
+        }
+
+        .header h1 {
+            color: white;
+            margin: 0;
+            font-size: 15px;
+            padding-right: 50px;
+        }
+
+        .header button {
+            background-color: transparent;
+            border: none;
+            color: white;
+            font-size: 14px;
+        }
+
+        .header button:hover {
+            background-color: transparent;
+            cursor: pointer;
+        }
+
+        .split {
+            height: 100%;
+            width: 50%;
+            position: fixed;
+            z-index: 1;
+            top: 0;
+            overflow-x: hidden;
+            padding-top: 20px;
+        }
+
+        .left {
+            left: 0;
+            padding:50px;
+        }
+
+        .right {
+            right: 0;
+            padding:10px;
+        }
+        select {
+            -webkit-appearance: none;
+            -moz-appearance: none;
+            appearance: none;
+            border: 0;
+            outline: 0;
+            font: inherit;
+            width: 20em;
+            height: 3em;
+            padding: 0 4em 0 1em;
+            background: url(https://upload.wikimedia.org/wikipedia/commons/9/9d/Caret_down_font_awesome_whitevariation.svg) no-repeat right 0.8em center/1.4em, linear-gradient(to left, rgba(255, 255, 255, 0.3) 3em, rgba(255, 255, 255, 0.2) 3em);
+            color: white;
+            border-radius: 0.25em;
+            box-shadow: 0 0 1em 0 rgba(0, 0, 0, 0.2);
+            cursor: pointer;
+        }
+        select option {
+            color: inherit;
+            background-color: #320a28;
+        }
+        select:focus {
+            outline: none;
+        }
+        select::-ms-expand {
+            display: none;
+        }
+
+        .search-form-container h2 {
+            color: white;
+            padding-top: 110px;
+        }
+
+        .search-form {
+            padding: 10px;
+            color:white;
+            font-family: Cambria;
+        }
+        .search {
+            background-color: rebeccapurple;
+            color: white;
+            width: 20em;
+            height: 3em;
+        }
+
+        .book {
+            background-color: darkblue;
+            color: white;
+            width: 20em;
+            height: 3em;
+        }
+
+        .search:hover {
+            background-color: mediumpurple;
+        }
+
+        .flights-list-container {
+            color: white;
+        }
+
+        .flights-list-container h2{
+            padding-top: 110px;
+        }
+        .flights-list .flight-item {
+            margin-bottom: 15px;
+        }
+
+        .flights-list .flight-item span {
+            margin-right: 15px;
+        }
+        .flight-item {
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            padding: 15px;
+            background: url(https://upload.wikimedia.org/wikipedia/commons/9/9d/Caret_down_font_awesome_whitevariation.svg) no-repeat right 0.8em center/1.4em, linear-gradient(to left, rgba(255, 255, 255, 0.3) 3em, rgba(255, 255, 255, 0.2) 3em);
+            border-radius: 8px;
+            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
+            transition: transform 0.3s ease, background-color 0.3s ease;
+            width: 70%;
+            height: 15px;
+        }
+
+        .popup-overlay {
+            position: fixed;
+            top: 0;
+            left: 0;
+            width: 100%;
+            height: 100%;
+            background: rgba(0, 0, 0, 0.7);
+            display: flex;
+            align-items: center;
+            justify-content: center;
+        }
+
+        .popup {
+            background-color: white;
+            padding: 20px;
+            width: 300px;
+            border-radius: 10px;
+        }
+
+        .popup button {
+            margin-top: 10px;
+            background-color: rebeccapurple;
+            color: white;
+            border: none;
+            padding: 5px;
+            cursor: pointer;
+        }
+
+        .popup button:hover {
+            background-color: mediumpurple;
+        }
+
+        .calendar {
+            background-color: transparent;
+            border-radius: 2px;
+            border-color: white;
+            width: 18.6em;
+            height: 2.5em;
+            color:white;
+        }
+    </style>
 </head>
 <body>
 
 <div id="app" class="flight-search">
-    <header class="app-header">
-        <button class="report-issue-btn" @click="showReportPopup">Report Issue</button>
-        <button class="report-issue-btn" @click="goToWishlistPage">🤍</button>
-        <button class="logout-btn" @click="logout">Log Out</button>
+    <header class="header">
+        <button @click="home"><img src="/images/home.png" alt="Home Icon"></button>
+        <button @click="showReportPopup">Report Issue</button>
+        <button @click="goToWishlistPage">🤍</button>
+        <button @click="home">Log Out</button>
     </header>
 
-    <div class="main-content">
-        <!-- Left side: Flight Search Form -->
+    <div class="split left">
         <div class="search-form-container">
-            <h1>Flight Search</h1>
+            <h2>Search flights</h2>
 
             <div class="search-form">
                 <label for="departure-city">Departure From</label>
+                <br>
                 <select v-model="departureCity" id="departure-city">
                     <option value="" disabled selected>Select a departure city</option>
@@ -31,4 +225,5 @@
 
                 <label for="destination">Destination</label>
+                <br>
                 <select v-model="destination" id="destination">
                     <option value="" disabled selected>Select a destination</option>
@@ -37,29 +232,28 @@
 
                 <label for="departure-date">Departure Date</label>
-                <input type="date" v-model="departureDate" id="departureDate" />
-
+                <br>
+                <input class="calendar" type="date" v-model="departureDate" id="departureDate" />
+                <br>
                 <div class="toggle-wrapper">
-                    <label for="return-date-toggle">Include Return Date</label>
-                    <input type="checkbox" v-model="showReturnDate" id="return-date-toggle" />
+                    <label for="return-date-toggle">Include Return Date<input type="checkbox" v-model="showReturnDate" id="return-date-toggle" /></label>
                 </div>
-
+                <br>
                 <div v-if="showReturnDate">
                     <label for="return-date">Return Date</label>
-                    <input type="date" v-model="returnDate" id="returnDate" />
+                    <input class="calendar" type="date" v-model="returnDate" id="returnDate" />
                 </div>
-
-                <button @click="searchFlights">Search Flights</button>
+                <br>
+                <button class="search" @click="searchFlights">Search Flights</button>
             </div>
         </div>
-
-        <!-- Right side: Available Flights List -->
-        <div class="flights-list-container" v-if="flights.length">
+    </div>
+    <div class="split right">
+        <div class="flights-list-container" v-show="isContainerVisible" v-if="flights.length">
             <h2>Available Flights</h2>
             <div class="flights-list">
                 <div class="flight-item" v-for="flight in flights" :key="flight.flightId">
                     <input type="checkbox" v-model="flight.selected" />
-                    <span>{{flight.departureTime}} | {{flight.arrivalTime}} | ${{ flight.price }} | {{flight.availableSeats}}</span>
-
-                    <!-- Heart icon for Wishlist -->
+                    <span>{{ flight.departureTime }} | {{ flight.arrivalTime }} | ${{ flight.price }} | {{ flight.availableSeats }}</span>
+
                     <span class="wishlist-heart" @click="toggleWishlist(flight)">
                         {{ flight.wishlisted ? '❤️' : '🤍' }}
@@ -68,13 +262,10 @@
             </div>
 
-            <!-- Book Button (Only appears if at least one flight is selected) -->
-            <button v-if="selectedFlights.length" @click="bookFlights" class="book-btn">
+            <button v-if="selectedFlights.length" @click="bookFlights"  class="book">
                 Book
             </button>
-
         </div>
     </div>
 
-    <!-- Popup Modal for Reporting an Issue -->
     <div v-if="showPopup" class="popup-overlay">
         <div class="popup">
@@ -93,4 +284,5 @@
         el: '#app',
         data: {
+            isContainerVisible:false,
             departureCity: '',
             destination: '',
@@ -112,18 +304,7 @@
         methods: {
             async searchFlights() {
-                console.log("button clicked");
-
+                this.isContainerVisible = !this.isContainerVisible;
                 if (this.departureCity && this.destination && this.departureDate) {
-                    console.log("Search parameters are valid.");
-
                     try {
-                        // Log the params being sent
-                        console.log("Params being sent:", {
-                            departureCity: this.departureCity,
-                            destination: this.destination,
-                            departureDate: this.departureDate,
-                            returnDate: this.showReturnDate ? this.returnDate : null
-                        });
-
                         const response = await axios.get('/api/flights/flight-search', {
                             params: {
@@ -135,24 +316,18 @@
                         });
 
-                        console.log("Response received:", response.data);
-
-                        // Handle no results
                         if (response.data && response.data.length > 0) {
                             this.flights = response.data;
-                            console.log("Flights found:", this.flights);
                         } else {
                             this.flights = [];
                             alert("No flights found for the given criteria.");
                         }
-
                     } catch (error) {
                         console.error("Error fetching flights", error);
                     }
                 } else {
-                    alert("Please select departure city, destination, and date");
+                    alert("Please select departure city, destination, and date.");
                     this.flights = [];
                 }
-            }
-,
+            },
             bookFlights() {
                 if (!this.selectedFlights.length) {
@@ -160,22 +335,19 @@
                     return;
                 }
+
                 const flight = this.selectedFlights[0];
-                console.log(this.selectedFlights[0]);
                 const totalCost = flight.price;
-                const bookingDate = new Date().toISOString().split('T')[0];
-
-
                 const bookingData = {
-                    flightId: flight.flightID,
-                    bookingDate: bookingDate,
+                    flightId: flight.flightId,
+                    bookingDate: new Date().toISOString().split('T')[0],
                     status: 'PENDING',
                     totalCost: totalCost
                 };
-                console.log("Booking Data",bookingData);
+
                 axios.post('/api/bookings', bookingData)
                     .then(response => {
                         const bookingID = response.data.bookingID;
                         alert("Booked successfully!");
-                        window.location.href = `/transaction?amount=${encodeURIComponent(totalCost)}&bookingId=${encodeURIComponent(bookingID)}&flightId=${encodeURIComponent(flight.flightID)}`;
+                        window.location.href = `/transaction?amount=${encodeURIComponent(totalCost)}&bookingId=${encodeURIComponent(bookingID)}&flightId=${encodeURIComponent(flight.flightId)}`;
                     })
                     .catch(error => {
@@ -184,23 +356,21 @@
                     });
             },
-            logout() {
-                window.location.href = '/login';
+            home() {
+                window.location.href = '/';
             },
             async toggleWishlist(flight) {
                 flight.wishlisted = !flight.wishlisted;
-
                 const wishlistData = {
-                    targetId: flight.flightID,
+                    targetId: flight.flightId,
                     wishlisted: flight.wishlisted
                 };
                 try {
-                    const response = await axios.post('/api/wishlists', wishlistData);
-                    console.log("Wishlist updated");
+                    await axios.post('/api/wishlists', wishlistData);
                 } catch (error) {
-                    console.error("Error updating wishlist:", error.response ? error.response.data : error.message);
+                    console.error("Error updating wishlist:", error);
                 }
             },
             goToWishlistPage() {
-                window.location.href = '/wishlist';
+                window.location.href = '/api/wishlists';
             },
             showReportPopup() {
@@ -211,9 +381,8 @@
             },
             submitIssue() {
-                const flight = this.selectedFlights[0];
                 if (this.issueDescription.trim()) {
                     const reviewData = {
                         userID: 1,
-                        subject: this.subject,
+                        subject: "Issue Report",
                         description: this.issueDescription
                     };
@@ -225,5 +394,5 @@
                         })
                         .catch(error => {
-                            console.error("Error submitting issue:", error.response ? error.response.data : error.message);
+                            console.error("Error submitting issue:", error);
                             alert("There was an error submitting your issue. Please try again.");
                         });
@@ -232,32 +401,7 @@
                 }
             },
-            leaveReview() {
-                const flight = this.selectedFlights[0];
-                if (this.issueDescription.trim()) {
-                    const reviewData = {
-                        userID: 1,
-                        targetID: flight.flightId,
-                        reviewComment: this.issueDescription,
-                        rating: 5,
-                        date: new Date().toISOString().split('T')[0]
-                    };
-
-                    axios.post('/api/support-tickets', reviewData)
-                        .then(response => {
-                            alert("Issue reported successfully!");
-                            this.closePopup();
-                        })
-                        .catch(error => {
-                            console.error("Error submitting issue:", error.response ? error.response.data : error.message);
-                            alert("There was an error submitting your issue. Please try again.");
-                        });
-                } else {
-                    alert("Please enter a description for the issue.");
-                }
-            },
             async fetchFlights() {
                 try {
                     const response = await axios.get('/api/destinations');
-
                     this.cities = response.data.map(departureCity => departureCity.name);
                     this.places = response.data.map(destination => destination.name);
@@ -276,12 +420,4 @@
                     console.error("Error fetching flights", error);
                 });
-            axios.get('api/bookings/getAll/${flight.flightId}')
-                .then(response => {
-                    console.log(response.data);
-                    this.bookings = response.data;
-                })
-                .catch(error => {
-                    console.error("Error fetching flights", error);
-                })
         }
     });
Index: src/main/resources/static/TransactionPage.html
===================================================================
--- src/main/resources/static/TransactionPage.html	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/resources/static/TransactionPage.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -8,42 +8,247 @@
     <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
 </head>
+<style>
+    @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');
+
+
+    * {
+        margin: 0;
+        padding: 0;
+        box-sizing: border-box;
+        font-family: 'Poppins', sans-serif
+    }
+
+    .container {
+        margin: 10px auto;
+        padding: 150px;
+        padding-top:10px;
+    }
+
+    .container .card {
+        width: 100%;
+        box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
+        background: #fff;
+        border-radius: 0px;
+    }
+
+    body {
+        background: #eee
+    }
+
+
+    .container .card .img-box {
+        width: 80px;
+        height: 50px;
+    }
+
+    .container .card img {
+        width: 100%;
+        object-fit: fill;
+    }
+
+    .container .card .number {
+        font-size: 24px;
+    }
+
+    .container .card-body .btn.btn-primary .fab.fa-cc-paypal {
+        font-size: 32px;
+        color: #3333f7;
+    }
+
+    .fab.fa-cc-amex {
+        color: #1c6acf;
+        font-size: 32px;
+    }
+
+    .fab.fa-cc-mastercard {
+        font-size: 32px;
+        color: red;
+    }
+
+    .fab.fa-cc-discover {
+        font-size: 32px;
+        color: orange;
+    }
+
+    .c-green {
+        color: green;
+    }
+
+    .box {
+        height: 40px;
+        width: 50px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        background-color: #ddd;
+    }
+
+    .btn.btn-primary.payment {
+        background-color: #1c6acf;
+        color: white;
+        border-radius: 0px;
+        height: 50px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-top: 24px;
+    }
+
+
+    .form__div {
+        height: 50px;
+        position: relative;
+        margin-bottom: 24px;
+    }
+
+    .form-control {
+        width: 100%;
+        height: 45px;
+        font-size: 14px;
+        border: 1px solid #DADCE0;
+        border-radius: 0;
+        outline: none;
+        padding: 2px;
+        background: none;
+        z-index: 1;
+        box-shadow: none;
+    }
+
+    .form__label {
+        position: absolute;
+        left: 16px;
+        top: 10px;
+        background-color: #fff;
+        color: #80868B;
+        font-size: 16px;
+        transition: .3s;
+        text-transform: uppercase;
+    }
+
+    .form-control:focus+.form__label {
+        top: -8px;
+        left: 12px;
+        color: #1A73E8;
+        font-size: 12px;
+        font-weight: 500;
+        z-index: 10;
+    }
+
+    .form-control:not(:placeholder-shown).form-control:not(:focus)+.form__label {
+        top: -8px;
+        left: 12px;
+        font-size: 12px;
+        font-weight: 500;
+        z-index: 10;
+    }
+    .input-group{
+        align-content: center;
+        padding-left: 500px;
+        padding-top:10px;
+    }
+    .button-group{
+        display:flex;
+        gap:10px;
+    }
+    .pay-btn,
+    .cancel-btn {
+        padding: 10px 20px;
+        font-size: 16px;
+        cursor: pointer;
+        border: none;
+        border-radius: 5px;
+    }
+
+    .pay-btn {
+        background-color: #4CAF50; /* Green background for the pay button */
+        color: white;
+    }
+
+    .cancel-btn {
+        background-color: #f44336; /* Red background for the cancel button */
+        color: white;
+    }
+</style>
 <body>
 
-<div id="app" class="transaction-container">
-    <div class="transaction-box">
-        <h2>Complete Your Payment</h2>
-
-        <form @submit.prevent="processPayment">
-            <div class="input-group">
-                <label for="cardholder">Cardholder Name</label>
-                <input type="text" id="cardholder" v-model="cardholder" placeholder="John Doe" required />
+<div id="app" class="container">
+    <div class="row">
+                <div class="col-lg-4 mb-lg-0 mb-3">
+                    <div class="card p-3">
+                        <div class="img-box">
+                            <img src="https://www.freepnglogos.com/uploads/visa-logo-download-png-21.png" alt="">
+                        </div>
+                        <div class="number">
+                            <label class="fw-bold" for="">**** **** **** 1060</label>
+                        </div>
+                        <div class="d-flex align-items-center justify-content-between">
+                            <small><span class="fw-bold">Expiry date:</span><span>10/16</span></small>
+                            <small><span class="fw-bold">Name:</span><span>Kumar</span></small>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4 mb-lg-0 mb-3">
+                    <div class="card p-3">
+                        <div class="img-box">
+                            <img src="https://www.freepnglogos.com/uploads/mastercard-png/file-mastercard-logo-svg-wikimedia-commons-4.png"
+                                 alt="">
+                        </div>
+                        <div class="number">
+                            <label class="fw-bold">**** **** **** 1060</label>
+                        </div>
+                        <div class="d-flex align-items-center justify-content-between">
+                            <small><span class="fw-bold">Expiry date:</span><span>10/16</span></small>
+                            <small><span class="fw-bold">Name:</span><span>Kumar</span></small>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4 mb-lg-0 mb-3">
+                    <div class="card p-3">
+                        <div class="img-box">
+                            <img src="https://www.freepnglogos.com/uploads/discover-png-logo/credit-cards-discover-png-logo-4.png"
+                                 alt="">
+                        </div>
+                        <div class="number">
+                            <label class="fw-bold">**** **** **** 1060</label>
+                        </div>
+                        <div class="d-flex align-items-center justify-content-between">
+                            <small><span class="fw-bold">Expiry date:</span><span>10/16</span></small>
+                            <small><span class="fw-bold">Name:</span><span>Kumar</span></small>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-12 mt-4">
+                    <div class="card p-3">
+                        <p class="mb-0 fw-bold h4">Payment Methods</p>
+                    </div>
+                </div>
             </div>
-
-            <div class="input-group">
-                <label for="cardNumber">Card Number</label>
-                <input type="text"
-                       id="cardNumber"
-                       v-model="cardNumber"
-                       maxlength="16"
-                       placeholder="1234 5678 9012 3456"
-                       required />
-            </div>
-
-            <div class="input-group">
-                <label for="expiration">Expiration Date</label>
-                <input type="month" id="expiration" v-model="expiration" required />
-            </div>
-
-            <div class="button-group">
-                <button type="submit" class="pay-btn">Pay</button>
-                <button type="button" class="cancel-btn" @click="cancelPayment">Cancel</button>
-            </div>
-        </form>
-
-        <div v-if="paymentSuccess" class="success-message">
-            ✅ Payment successful! Redirecting...
+            <form class="submit" @submit.prevent="processPayment">
+                <div class="input-group">
+                    <label for="cardholder">Cardholder Name</label>
+                    <input type="text" id="cardholder" v-model="cardholder" placeholder="John Doe" required />
+                </div>
+
+                <div class="input-group">
+                    <label for="cardNumber">Card Number</label>
+                    <input type="text"
+                           id="cardNumber"
+                           v-model="cardNumber"
+                           maxlength="16"
+                           placeholder="1234 5678 9012 3456"
+                           required />
+                </div>
+
+                <div class="input-group">
+                    <label for="expiration">Expiration Date</label>
+                    <input type="month" id="expiration" v-model="expiration" required />
+                </div>
+
+                <div class="button-group">
+                    <button type="submit" class="pay-btn">Pay</button>
+                    <button type="button" class="cancel-btn" @click="cancelPayment">Cancel</button>
+                </div>
+            </form>
         </div>
-    </div>
-</div>
 
 <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
Index: src/main/resources/static/UserLogin.html
===================================================================
--- src/main/resources/static/UserLogin.html	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/resources/static/UserLogin.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -35,10 +35,36 @@
         data: {
             email: '',
-            password: ''
+            password: '',
+            userId:''
         },
         methods: {
-            loginUser() {
+            async loginUser() {
                 if (this.email && this.password) {
-                    window.location.href = '/flights';
+                    try{
+                        const response = await fetch('/api/user/login', {
+                            method:'POST',
+                            headers: {
+                                'Content-Type':'application/json'
+                            },
+                            body: JSON.stringify({
+                                email:this.email,
+                                password:this.password
+                            })
+                        });
+                        if(!response.ok){
+                            throw new Error('Login failed');
+                        }
+                        const data = await response.json();
+                        console.log(data);
+                        if(data.userId){
+                            console.log('Success');
+                            window.location.href = `/flights?userId=${encodeURIComponent(data.userId)}`;
+                        }else {
+                            alert('Invalid login credentials');
+                        }
+                    } catch (error){
+                        console.error(error);
+                        alert('Login failed. Please try again.');
+                    }
                 }
             }
Index: src/main/resources/static/Wishlist.html
===================================================================
--- src/main/resources/static/Wishlist.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
+++ src/main/resources/static/Wishlist.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>SkyChase-mk</title>
+    <style>
+        body {
+            background: url('images/homepage.jpg') no-repeat center center fixed;
+            background-size: cover;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+            height: 100vh;
+            margin: 0;
+            font-family: Arial, sans-serif;
+        }
+
+        .header {
+            position: absolute;
+            top: 0;
+            left: 0;
+            display: flex;
+            align-items: center;
+            background-color:rebeccapurple;
+            padding: 10px;
+            width: 100%;
+        }
+
+        .header img {
+            width: 40px;
+            height: 40px;
+            margin-right: 10px;
+        }
+
+        .header h1 {
+            color: white;
+            margin: 0;
+            font-size: 15px;
+            padding-right: 50px;
+        }
+
+        .buttons {
+            text-align: center;
+        }
+
+        .buttons button {
+            padding: 15px 30px;
+            margin: 10px;
+            font-size: 18px;
+            border: none;
+            border-radius: 5px;
+            cursor: pointer;
+            transition: 0.3s;
+        }
+
+        .signup {
+            background-color: rebeccapurple;
+            color: white;
+        }
+
+        .signup:hover {
+            background-color: mediumpurple;
+        }
+
+        .login {
+            background-color: #007bff;
+            color: white;
+        }
+
+        .login:hover {
+            background-color: #0056b3;
+        }
+        .adminlogin {
+            top:0;
+            right: 0;
+            background-color: rebeccapurple;
+            border:0;
+            color:white;
+            padding: 0 1200px;
+        }
+    </style>
+</head>
+<body>
+<div class="header">
+    <img src="/images/home.png" alt="Home Icon">
+    <h1>SkyChase</h1>
+    <button class="adminlogin" onclick="location.href='/admin'">Admin?</button>
+</div>
+
+<div class="buttons">
+    <h1>Test</h1>
+</div>
+</body>
+</html>
Index: src/main/resources/static/css/main.css
===================================================================
--- src/main/resources/static/css/main.css	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/resources/static/css/main.css	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -1,4 +1,4 @@
 .signup-container {
-    background-image: url('../../images/registration.jpg');
+    background-image: url('../images/registration.jpg');
     background-size: cover;
     background-position: center;
Index: src/main/resources/static/index.html
===================================================================
--- src/main/resources/static/index.html	(revision a70b5a40a9534d47aad3a99f7470481b67596179)
+++ src/main/resources/static/index.html	(revision 986830465c15053d3a25484f02e6e5ef26ceae2e)
@@ -4,63 +4,94 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Support Tickets</title>
-    <link rel="stylesheet" href="/css/main.css">
-    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
+    <title>SkyChase-mk</title>
+    <style>
+        body {
+            background: url('images/homepage.jpg') no-repeat center center fixed;
+            background-size: cover;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+            height: 100vh;
+            margin: 0;
+            font-family: Arial, sans-serif;
+        }
+
+        .header {
+            position: absolute;
+            top: 0;
+            left: 0;
+            display: flex;
+            align-items: center;
+            background-color:rebeccapurple;
+            padding: 10px;
+            width: 100%;
+        }
+
+        .header img {
+            width: 40px;
+            height: 40px;
+            margin-right: 10px;
+        }
+
+        .header h1 {
+            color: white;
+            margin: 0;
+            font-size: 15px;
+            padding-right: 50px;
+        }
+
+        .buttons {
+            text-align: center;
+        }
+
+        .buttons button {
+            padding: 15px 30px;
+            margin: 10px;
+            font-size: 18px;
+            border: none;
+            border-radius: 5px;
+            cursor: pointer;
+            transition: 0.3s;
+        }
+
+        .signup {
+            background-color: rebeccapurple;
+            color: white;
+        }
+
+        .signup:hover {
+            background-color: mediumpurple;
+        }
+
+        .login {
+            background-color: #007bff;
+            color: white;
+        }
+
+        .login:hover {
+            background-color: #0056b3;
+        }
+        .adminlogin {
+            top:0;
+            right: 0;
+            background-color: rebeccapurple;
+            border:0;
+            color:white;
+            padding: 0 1200px;
+        }
+    </style>
 </head>
 <body>
-
-<div id="app" class="support-ticket-container">
-    <h1>Support Tickets</h1>
-    <div class="ticket-layout">
-        <!-- Left side: Ticket list -->
-        <div class="ticket-list">
-            <div class="ticket-item"
-                 v-for="ticket in tickets"
-                 :key="ticket.id"
-                 @click="selectTicket(ticket)"
-                 :class="{'active': selectedTicket && selectedTicket.id === ticket.id}">
-                <div class="ticket-info">
-                    <p><strong>Subject:</strong> {{ ticket.subject }}</p>
-                    <p><strong>Date:</strong> {{ ticket.date }}</p>
-                </div>
-                <div class="ticket-actions">
-                    <button @click.stop="resolveTicket(ticket.id)">Resolve</button>
-                </div>
-            </div>
-        </div>
-
-        <!-- Right side: Ticket details -->
-        <div class="ticket-details" v-if="selectedTicket">
-            <h2>Ticket Details</h2>
-            <p><strong>Subject:</strong> {{ selectedTicket.subject }}</p>
-            <p><strong>Description:</strong> {{ selectedTicket.description }}</p>
-            <p><strong>Date:</strong> {{ selectedTicket.date }}</p>
-            <button @click="resolveTicket(selectedTicket.id)">Resolve</button>
-        </div>
-    </div>
+<div class="header">
+    <img src="/images/home.png" alt="Home Icon">
+    <h1>SkyChase</h1>
+    <button class="adminlogin" onclick="location.href='/admin'">Admin?</button>
 </div>
 
-<script>
-    new Vue({
-        el: '#app',
-        data: {
-            tickets: [
-                { id: 1, subject: 'Flight booking issue', description: 'Customer could not book a flight.', date: '2025-02-01' },
-                { id: 2, subject: 'Payment failure', description: 'Payment was not processed during checkout.', date: '2025-02-02' }
-            ],
-            selectedTicket: null
-        },
-        methods: {
-            resolveTicket(id) {
-                alert(`Ticket ${id} resolved.`);
-                // Optionally, you can update the ticket's status or remove it
-            },
-            selectTicket(ticket) {
-                this.selectedTicket = ticket;
-            }
-        }
-    });
-</script>
-
+<div class="buttons">
+    <button class="signup" onclick="location.href='/signup'">Sign Up</button>
+    <button class="login" onclick="location.href='/login'">Login</button>
+</div>
 </body>
 </html>
