560 lines
21 KiB
HTML
560 lines
21 KiB
HTML
<!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" />
|
|
<link
|
|
href="https://api.mapbox.com/mapbox-gl-js/v3.0.1/mapbox-gl.css"
|
|
rel="stylesheet"
|
|
/>
|
|
<script src="https://api.mapbox.com/mapbox-gl-js/v3.0.1/mapbox-gl.js"></script>
|
|
<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 bg-black 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="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
|
|
>
|
|
<button
|
|
class="block px-4 py-2 text-sm text-gray-700"
|
|
role="menuitem"
|
|
tabindex="-1"
|
|
id="user-menu-item-2"
|
|
>
|
|
Sign Out
|
|
</button>
|
|
</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="bg-gray-900 text-white 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="text-gray-300 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>
|
|
|
|
<!-- Search -->
|
|
<section class="bg-blue-700 py-4">
|
|
<div
|
|
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex flex-col items-start"
|
|
>
|
|
<!-- Form Component -->
|
|
<form
|
|
class="mt-3 mx-auto max-w-2xl w-full flex flex-col md:flex-row items-center"
|
|
>
|
|
<div class="w-full md:w-3/5 md:pr-2 mb-4 md:mb-0">
|
|
<label for="location" class="sr-only">Location</label>
|
|
<input
|
|
type="text"
|
|
id="location"
|
|
placeholder="Enter Location (City, State, Zip, etc"
|
|
class="w-full px-4 py-3 rounded-lg bg-white text-gray-800 focus:outline-none focus:ring focus:ring-blue-500"
|
|
/>
|
|
</div>
|
|
<div class="w-full md:w-2/5 md:pl-2">
|
|
<label for="property-type" class="sr-only">Property Type</label>
|
|
<select
|
|
id="property-type"
|
|
class="w-full px-4 py-3 rounded-lg bg-white text-gray-800 focus:outline-none focus:ring focus:ring-blue-500"
|
|
>
|
|
<option value="All">All</option>
|
|
<option value="Apartment">Apartment</option>
|
|
<option value="Studio">Studio</option>
|
|
<option value="Condo">Condo</option>
|
|
<option value="House">House</option>
|
|
<option value="Cabin Or Cottage">Cabin or Cottage</option>
|
|
<option value="Loft">Loft</option>
|
|
<option value="Room">Room</option>
|
|
<option value="Other">Other</option>
|
|
</select>
|
|
</div>
|
|
<button
|
|
type="submit"
|
|
class="md:ml-4 mt-4 md:mt-0 w-full md:w-auto px-6 py-3 rounded-lg bg-blue-500 text-white hover:bg-blue-600 focus:outline-none focus:ring focus:ring-blue-500"
|
|
>
|
|
Search
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Property Header Image -->
|
|
<section>
|
|
<div class="container-xl m-auto">
|
|
<div class="grid grid-cols-1">
|
|
<img
|
|
src="images/properties/a1.jpg"
|
|
alt=""
|
|
class="object-cover h-[400px]"
|
|
width="1800"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Go Back -->
|
|
<section>
|
|
<div class="container m-auto py-6 px-6">
|
|
<a
|
|
href="/properties.html"
|
|
class="text-blue-500 hover:text-blue-600 flex items-center"
|
|
>
|
|
<i class="fas fa-arrow-left mr-2"></i> Back to Properties
|
|
</a>
|
|
</section>
|
|
|
|
<!-- Property Info -->
|
|
<section class="bg-blue-50">
|
|
<div class="container m-auto py-10 px-6">
|
|
<div class="grid grid-cols-1 md:grid-cols-70/30 w-full gap-6">
|
|
<main>
|
|
<div
|
|
class="bg-white p-6 rounded-lg shadow-md text-center md:text-left"
|
|
>
|
|
<div class="text-gray-500 mb-4">Apartment</div>
|
|
<h1 class="text-3xl font-bold mb-4">Boston Commons Retreat</h1>
|
|
<div
|
|
class="text-gray-500 mb-4 flex align-middle justify-center md:justify-start"
|
|
>
|
|
<i
|
|
class="fa-solid fa-location-dot text-lg text-orange-700 mr-2"
|
|
></i>
|
|
<p class="text-orange-700">
|
|
120 Tremont Street Boston, MA 02111
|
|
</p>
|
|
</div>
|
|
|
|
<h3 class="text-lg font-bold my-6 bg-gray-800 text-white p-2">
|
|
Rates & Options
|
|
</h3>
|
|
<div class="flex flex-col md:flex-row justify-around">
|
|
<div
|
|
class="flex items-center justify-center mb-4 border-b border-gray-200 md:border-b-0 pb-4 md:pb-0"
|
|
>
|
|
<div class="text-gray-500 mr-2 font-bold">Nightly</div>
|
|
<div class="text-2xl font-bold">
|
|
<i class="fa fa-xmark text-red-700"></i>
|
|
</div>
|
|
</div>
|
|
<div
|
|
class="flex items-center justify-center mb-4 border-b border-gray-200 md:border-b-0 pb-4 md:pb-0"
|
|
>
|
|
<div class="text-gray-500 mr-2 font-bold">Weekly</div>
|
|
<div class="text-2xl font-bold text-blue-500">$1,100</div>
|
|
</div>
|
|
<div class="flex items-center justify-center mb-4 pb-4 md:pb-0">
|
|
<div class="text-gray-500 mr-2 font-bold">Monthly</div>
|
|
<div class="text-2xl font-bold text-blue-500">$4,200</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-white p-6 rounded-lg shadow-md mt-6">
|
|
<h3 class="text-lg font-bold mb-6">Description & Details</h3>
|
|
<div
|
|
class="flex justify-center gap-4 text-blue-500 mb-4 text-xl space-x-9"
|
|
>
|
|
<p>
|
|
<i class="fa-solid fa-bed"></i> 3
|
|
<span class="hidden sm:inline">Beds</span>
|
|
</p>
|
|
<p>
|
|
<i class="fa-solid fa-bath"></i> 2
|
|
<span class="hidden sm:inline">Baths</span>
|
|
</p>
|
|
<p>
|
|
<i class="fa-solid fa-ruler-combined"></i>
|
|
1,500 <span class="hidden sm:inline">sqft</span>
|
|
</p>
|
|
</div>
|
|
<p class="text-gray-500 mb-4">
|
|
This is a beautiful apartment located near the commons
|
|
</p>
|
|
</div>
|
|
|
|
<div class="bg-white p-6 rounded-lg shadow-md mt-6">
|
|
<h3 class="text-lg font-bold mb-6">Amenities</h3>
|
|
|
|
<ul
|
|
class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 list-none"
|
|
>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i> Wifi
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Full
|
|
kitchen
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Washer &
|
|
Dryer
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Free
|
|
Parking
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Hot Tub
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>24/7
|
|
Security
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i
|
|
>Wheelchair Accessible
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Elevator
|
|
Access
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i
|
|
>Dishwasher
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i
|
|
>Gym/Fitness Center
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Air
|
|
Conditioning
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i
|
|
>Balcony/Patio
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Smart TV
|
|
</li>
|
|
<li>
|
|
<i class="fas fa-check text-green-600 mr-2 mt-3"></i>Coffee
|
|
Maker
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="bg-white p-6 rounded-lg shadow-md mt-6">
|
|
<div id="map"></div>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- Sidebar -->
|
|
<aside class="space-y-4">
|
|
<button
|
|
class="bg-blue-500 hover:bg-blue-600 text-white font-bold w-full py-2 px-4 rounded-full flex items-center justify-center"
|
|
>
|
|
<i class="fas fa-bookmark mr-2"></i> Bookmark Property
|
|
</button>
|
|
<button
|
|
class="bg-orange-500 hover:bg-orange-600 text-white font-bold w-full py-2 px-4 rounded-full flex items-center justify-center"
|
|
>
|
|
<i class="fas fa-share mr-2"></i> Share Property
|
|
</button>
|
|
|
|
<!-- Contact Form -->
|
|
<div class="bg-white p-6 rounded-lg shadow-md">
|
|
<h3 class="text-xl font-bold mb-6">Contact Property Manager</h3>
|
|
<form>
|
|
<div class='mb-4'>
|
|
<label
|
|
class='block text-gray-700 text-sm font-bold mb-2'
|
|
htmlFor='name'
|
|
>
|
|
Name:
|
|
</label>
|
|
<input
|
|
class='shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline'
|
|
id='name'
|
|
name='name'
|
|
type='text'
|
|
placeholder='Enter your name'
|
|
required
|
|
/>
|
|
</div>
|
|
<div class='mb-4'>
|
|
<label
|
|
class='block text-gray-700 text-sm font-bold mb-2'
|
|
htmlFor='email'
|
|
>
|
|
Email:
|
|
</label>
|
|
<input
|
|
class='shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline'
|
|
id='email'
|
|
name='email'
|
|
type='email'
|
|
placeholder='Enter your email'
|
|
required
|
|
/>
|
|
</div>
|
|
<div class='mb-4'>
|
|
<label
|
|
class='block text-gray-700 text-sm font-bold mb-2'
|
|
htmlFor='phone'
|
|
>
|
|
Phone:
|
|
</label>
|
|
<input
|
|
class='shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline'
|
|
id='phone'
|
|
name='phone'
|
|
type='text'
|
|
placeholder='Enter your phone number'
|
|
/>
|
|
</div>
|
|
<div class='mb-4'>
|
|
<label
|
|
class='block text-gray-700 text-sm font-bold mb-2'
|
|
htmlFor='message'
|
|
>
|
|
Message:
|
|
</label>
|
|
<textarea
|
|
class='shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 h-44 focus:outline-none focus:shadow-outline'
|
|
id='message'
|
|
name='message'
|
|
placeholder='Enter your message'
|
|
></textarea>
|
|
</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 flex items-center justify-center'
|
|
type='submit'
|
|
>
|
|
<FaPaperPlane class='mr-2' /> Send Message
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</aside>
|
|
</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>
|
|
<script>
|
|
mapboxgl.accessToken =
|
|
'pk.eyJ1IjoiYnRyYXZlcnN5IiwiYSI6ImNrbmh0dXF1NzBtbnMyb3MzcTBpaG10eXcifQ.h5ZyYCglnMdOLAGGiL1Auw';
|
|
const map = new mapboxgl.Map({
|
|
container: 'map', // container ID
|
|
center: [-71.062095, 42.3551], // Boston Tremont St location [lng, lat]
|
|
zoom: 14, // starting zoom
|
|
});
|
|
|
|
// Add a marker at 120 Tremont St
|
|
new mapboxgl.Marker().setLngLat([-71.062095, 42.3551]).addTo(map);
|
|
</script>
|
|
</body>
|
|
</html>
|