Initial setup
This commit is contained in:
@@ -0,0 +1,656 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||
integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA=="
|
||||
crossorigin="anonymous"
|
||||
referrerpolicy="no-referrer"
|
||||
/>
|
||||
<link rel="stylesheet" href="css/styles.css" />
|
||||
<link rel="icon" type="image/png" href="favicon.ico" />
|
||||
<title>Property Pulse | Find local rental properties</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="bg-blue-700 border-b border-blue-500">
|
||||
<div class="mx-auto max-w-7xl px-2 sm:px-6 lg:px-8">
|
||||
<div class="relative flex h-20 items-center justify-between">
|
||||
<div class="absolute inset-y-0 left-0 flex items-center md:hidden">
|
||||
<!-- Mobile menu button-->
|
||||
<button
|
||||
type="button"
|
||||
id="mobile-dropdown-button"
|
||||
class="relative inline-flex items-center justify-center rounded-md p-2 text-gray-400 hover:bg-gray-700 hover:text-white focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white"
|
||||
aria-controls="mobile-menu"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span class="absolute -inset-0.5"></span>
|
||||
<span class="sr-only">Open main menu</span>
|
||||
<svg
|
||||
class="block h-6 w-6"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="flex flex-1 items-center justify-center md:items-stretch md:justify-start"
|
||||
>
|
||||
<!-- Logo -->
|
||||
<a class="flex flex-shrink-0 items-center" href="/index.html">
|
||||
<img
|
||||
class="h-10 w-auto"
|
||||
src="/images/logo-white.png"
|
||||
alt="PropertyPulse"
|
||||
/>
|
||||
|
||||
<span class="hidden md:block text-white text-2xl font-bold ml-2"
|
||||
>PropertyPulse</span
|
||||
>
|
||||
</a>
|
||||
<!-- Desktop Menu Hidden below md screens -->
|
||||
<div class="hidden md:ml-6 md:block">
|
||||
<div class="flex space-x-2">
|
||||
<a
|
||||
href="/index.html"
|
||||
class="text-white hover:bg-gray-900 hover:text-white rounded-md px-3 py-2"
|
||||
>Home</a
|
||||
>
|
||||
<a
|
||||
href="/properties.html"
|
||||
class="text-white hover:bg-gray-900 hover:text-white rounded-md px-3 py-2"
|
||||
>Properties</a
|
||||
>
|
||||
<a
|
||||
href="/add-property.html"
|
||||
class="bg-black text-white hover:bg-gray-900 hover:text-white rounded-md px-3 py-2"
|
||||
>Add Property</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Side Menu (Logged Out) -->
|
||||
<div class="hidden md:block md:ml-6">
|
||||
<div class="flex items-center">
|
||||
<button
|
||||
class="flex items-center text-white bg-gray-700 hover:bg-gray-900 hover:text-white rounded-md px-3 py-2"
|
||||
>
|
||||
<i class="fa-brands fa-google text-white mr-2"></i>
|
||||
<span>Login or Register</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Side Menu (Logged In) -->
|
||||
<div
|
||||
class="absolute inset-y-0 right-0 flex items-center pr-2 md:static md:inset-auto md:ml-6 md:pr-0"
|
||||
>
|
||||
<a href="messages.html" class="relative group">
|
||||
<button
|
||||
type="button"
|
||||
class="relative rounded-full bg-gray-800 p-1 text-gray-400 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"
|
||||
>
|
||||
<span class="absolute -inset-1.5"></span>
|
||||
<span class="sr-only">View notifications</span>
|
||||
<svg
|
||||
class="h-6 w-6"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
<span
|
||||
class="absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-white transform translate-x-1/2 -translate-y-1/2 bg-red-600 rounded-full"
|
||||
>
|
||||
2
|
||||
<!-- Replace with the actual number of notifications -->
|
||||
</span>
|
||||
</a>
|
||||
<!-- Profile dropdown button -->
|
||||
<div class="relative ml-3">
|
||||
<div>
|
||||
<button
|
||||
type="button"
|
||||
class="relative flex rounded-full bg-gray-800 text-sm focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"
|
||||
id="user-menu-button"
|
||||
aria-expanded="false"
|
||||
aria-haspopup="true"
|
||||
>
|
||||
<span class="absolute -inset-1.5"></span>
|
||||
<span class="sr-only">Open user menu</span>
|
||||
<img
|
||||
class="h-8 w-8 rounded-full"
|
||||
src="/images/profile.png"
|
||||
alt=""
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Profile dropdown -->
|
||||
<div
|
||||
id="user-menu"
|
||||
class="hidden absolute right-0 z-10 mt-2 w-48 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"
|
||||
role="menu"
|
||||
aria-orientation="vertical"
|
||||
aria-labelledby="user-menu-button"
|
||||
tabindex="-1"
|
||||
>
|
||||
<a
|
||||
href="/profile.html"
|
||||
class="block px-4 py-2 text-sm text-gray-700"
|
||||
role="menuitem"
|
||||
tabindex="-1"
|
||||
id="user-menu-item-0"
|
||||
>Your Profile</a
|
||||
>
|
||||
<a
|
||||
href="saved-properties.html"
|
||||
class="block px-4 py-2 text-sm text-gray-700"
|
||||
role="menuitem"
|
||||
tabindex="-1"
|
||||
id="user-menu-item-2"
|
||||
>Saved Properties</a
|
||||
>
|
||||
<a
|
||||
href="#"
|
||||
class="block px-4 py-2 text-sm text-gray-700"
|
||||
role="menuitem"
|
||||
tabindex="-1"
|
||||
id="user-menu-item-2"
|
||||
>Sign Out</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile menu, show/hide based on menu state. -->
|
||||
<div class="hidden" id="mobile-menu">
|
||||
<div class="space-y-1 px-2 pb-3 pt-2">
|
||||
<a
|
||||
href="/index.html"
|
||||
class="text-gray-300 block rounded-md px-3 py-2 text-base font-medium"
|
||||
>Home</a
|
||||
>
|
||||
<a
|
||||
href="/properties.html"
|
||||
class="text-gray-300 hover:bg-gray-700 hover:text-white block rounded-md px-3 py-2 text-base font-medium"
|
||||
>Properties</a
|
||||
>
|
||||
<a
|
||||
href="/add-property.html"
|
||||
class="bg-gray-900 text-white hover:bg-gray-700 hover:text-white block rounded-md px-3 py-2 text-base font-medium"
|
||||
>Add Property</a
|
||||
>
|
||||
<button
|
||||
class="flex items-center text-white bg-gray-700 hover:bg-gray-900 hover:text-white rounded-md px-3 py-2 my-4"
|
||||
>
|
||||
<i class="fa-brands fa-google mr-2"></i>
|
||||
<span>Login or Register</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section class="bg-blue-50">
|
||||
<div class="container m-auto max-w-2xl py-24">
|
||||
<div
|
||||
class="bg-white px-6 py-8 mb-4 shadow-md rounded-md border m-4 md:m-0"
|
||||
>
|
||||
<form>
|
||||
<h2 class="text-3xl text-center font-semibold mb-6">
|
||||
Add Property
|
||||
</h2>
|
||||
|
||||
<!-- Alerts -->
|
||||
<div class="bg-green-200 font-semibold p-4 my-5">
|
||||
This is a success message alert
|
||||
</div>
|
||||
<div class="bg-red-200 font-semibold p-4 my-5">
|
||||
This is an error message alert
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label
|
||||
for="property_type"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Property Type</label
|
||||
>
|
||||
<select
|
||||
id="property_type"
|
||||
name="property_type"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
required
|
||||
>
|
||||
<option value="Apartment">Apartment</option>
|
||||
<option value="Condo">Condo</option>
|
||||
<option value="House">House</option>
|
||||
<option value="CabinOrCottage">Cabin or Cottage</option>
|
||||
<option value="Room">Room</option>
|
||||
<option value="Studio">Studio</option>
|
||||
<option value="Other">Other</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-bold mb-2"
|
||||
>Listing Name</label
|
||||
>
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
name="name"
|
||||
class="border rounded w-full py-2 px-3 mb-2"
|
||||
placeholder="eg. Beautiful Apartment In Miami"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label
|
||||
for="description"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Description</label
|
||||
>
|
||||
<textarea
|
||||
id="description"
|
||||
name="description"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
rows="4"
|
||||
placeholder="Add an optional description of your property"
|
||||
></textarea>
|
||||
</div>
|
||||
|
||||
<div class="mb-4 bg-blue-50 p-4">
|
||||
<label class="block text-gray-700 font-bold mb-2">Location</label>
|
||||
<input
|
||||
type="text"
|
||||
id="street"
|
||||
name="location.street"
|
||||
class="border rounded w-full py-2 px-3 mb-2"
|
||||
placeholder="Street"
|
||||
/>
|
||||
<input
|
||||
type="text"
|
||||
id="city"
|
||||
name="location.city"
|
||||
class="border rounded w-full py-2 px-3 mb-2"
|
||||
placeholder="City"
|
||||
required
|
||||
/>
|
||||
<input
|
||||
type="text"
|
||||
id="state"
|
||||
name="location.state"
|
||||
class="border rounded w-full py-2 px-3 mb-2"
|
||||
placeholder="State"
|
||||
required
|
||||
/>
|
||||
<input
|
||||
type="text"
|
||||
id="zipcode"
|
||||
name="location.zipcode"
|
||||
class="border rounded w-full py-2 px-3 mb-2"
|
||||
placeholder="Zipcode"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="mb-4 flex flex-wrap">
|
||||
<div class="w-full sm:w-1/3 pr-2">
|
||||
<label for="beds" class="block text-gray-700 font-bold mb-2"
|
||||
>Beds</label
|
||||
>
|
||||
<input
|
||||
type="number"
|
||||
id="beds"
|
||||
name="beds"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="w-full sm:w-1/3 px-2">
|
||||
<label for="baths" class="block text-gray-700 font-bold mb-2"
|
||||
>Baths</label
|
||||
>
|
||||
<input
|
||||
type="number"
|
||||
id="baths"
|
||||
name="baths"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="w-full sm:w-1/3 pl-2">
|
||||
<label
|
||||
for="square_feet"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Square Feet</label
|
||||
>
|
||||
<input
|
||||
type="number"
|
||||
id="square_feet"
|
||||
name="square_feet"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 font-bold mb-2"
|
||||
>Amenities</label
|
||||
>
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 gap-2">
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_wifi"
|
||||
name="amenities"
|
||||
value="Wifi"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_wifi">Wifi</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_kitchen"
|
||||
name="amenities"
|
||||
value="Full kitchen"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_kitchen">Full kitchen</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_washer_dryer"
|
||||
name="amenities"
|
||||
value="Washer & Dryer"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_washer_dryer">Washer & Dryer</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_free_parking"
|
||||
name="amenities"
|
||||
value="Free Parking"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_free_parking">Free Parking</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_pool"
|
||||
name="amenities"
|
||||
value="Swimming Pool"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_pool">Swimming Pool</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_hot_tub"
|
||||
name="amenities"
|
||||
value="Hot Tub"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_hot_tub">Hot Tub</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_24_7_security"
|
||||
name="amenities"
|
||||
value="24/7 Security"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_24_7_security">24/7 Security</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_wheelchair_accessible"
|
||||
name="amenities"
|
||||
value="Wheelchair Accessible"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_wheelchair_accessible"
|
||||
>Wheelchair Accessible</label
|
||||
>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_elevator_access"
|
||||
name="amenities"
|
||||
value="Elevator Access"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_elevator_access">Elevator Access</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_dishwasher"
|
||||
name="amenities"
|
||||
value="Dishwasher"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_dishwasher">Dishwasher</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_gym_fitness_center"
|
||||
name="amenities"
|
||||
value="Gym/Fitness Center"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_gym_fitness_center"
|
||||
>Gym/Fitness Center</label
|
||||
>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_air_conditioning"
|
||||
name="amenities"
|
||||
value="Air Conditioning"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_air_conditioning">Air Conditioning</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_balcony_patio"
|
||||
name="amenities"
|
||||
value="Balcony/Patio"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_balcony_patio">Balcony/Patio</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_smart_tv"
|
||||
name="amenities"
|
||||
value="Smart TV"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_smart_tv">Smart TV</label>
|
||||
</div>
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="amenity_coffee_maker"
|
||||
name="amenities"
|
||||
value="Coffee Maker"
|
||||
className="mr-2"
|
||||
/>
|
||||
<label for="amenity_coffee_maker">Coffee Maker</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4 bg-blue-50 p-4">
|
||||
<label class="block text-gray-700 font-bold mb-2"
|
||||
>Rates (Leave blank if not applicable)</label
|
||||
>
|
||||
<div
|
||||
class="flex flex-col space-y-4 sm:flex-row sm:space-y-0 sm:space-x-4"
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<label for="weekly_rate" class="mr-2">Weekly</label>
|
||||
<input
|
||||
type="number"
|
||||
id="weekly_rate"
|
||||
name="rates.weekly"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<label for="monthly_rate" class="mr-2">Monthly</label>
|
||||
<input
|
||||
type="number"
|
||||
id="monthly_rate"
|
||||
name="rates.monthly"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<label for="nightly_rate" class="mr-2">Nightly</label>
|
||||
<input
|
||||
type="number"
|
||||
id="nightly_rate"
|
||||
name="rates.nightly"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label
|
||||
for="seller_name"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Seller Name</label
|
||||
>
|
||||
<input
|
||||
type="text"
|
||||
id="seller_name"
|
||||
name="seller_info.name."
|
||||
class="border rounded w-full py-2 px-3"
|
||||
placeholder="Name"
|
||||
/>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label
|
||||
for="seller_email"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Seller Email</label
|
||||
>
|
||||
<input
|
||||
type="email"
|
||||
id="seller_email"
|
||||
name="seller_info.email"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
placeholder="Email address"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label
|
||||
for="seller_phone"
|
||||
class="block text-gray-700 font-bold mb-2"
|
||||
>Seller Phone</label
|
||||
>
|
||||
<input
|
||||
type="tel"
|
||||
id="seller_phone"
|
||||
name="seller_info.phone"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
placeholder="Phone"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="images" class="block text-gray-700 font-bold mb-2"
|
||||
>Images (Select up to 4 images)</label
|
||||
>
|
||||
<input
|
||||
type="file"
|
||||
id="images"
|
||||
name="images"
|
||||
class="border rounded w-full py-2 px-3"
|
||||
accept="image/*"
|
||||
multiple
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button
|
||||
class="bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded-full w-full focus:outline-none focus:shadow-outline"
|
||||
type="submit"
|
||||
>
|
||||
Add Property
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gray-200 py-4 mt-auto">
|
||||
<div
|
||||
class="container mx-auto flex flex-col md:flex-row items-center justify-between px-4"
|
||||
>
|
||||
<div class="mb-4 md:mb-0">
|
||||
<img src="/images/logo.png" alt="Logo" class="h-8 w-auto" />
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-wrap justify-center md:justify-start mb-4 md:mb-0"
|
||||
>
|
||||
<ul class="flex space-x-4">
|
||||
<li><a href="/properties.html">Properties</a></li>
|
||||
<li><a href="/terms.html">Terms of Service</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-sm text-gray-500 mt-2 md:mt-0">
|
||||
© 2024 PropertyPulse. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user