created the login page and the single-listing page

This commit is contained in:
soyed 2021-04-05 14:58:04 -04:00
parent 108a888c9b
commit 12937b3f98
20 changed files with 491 additions and 26 deletions

View file

@ -5,6 +5,9 @@ import { BrowserRouter, Route } from "react-router-dom";
import HomePage from "./homePage/Homepage";
import ListingsPage from "./listings-page/ListingsPage";
import AgentPage from "./agent-page/AgentPage";
import ListingPage from "./listings-page/single-listing/listing-page";
// import Login from "./login-page/Login";
import Account from "./login-page/account/Account";
// import ContactUs from "./shared-components/Contact-us/Contact-us";
class App extends Component {
@ -16,6 +19,8 @@ class App extends Component {
<Route exact path="/" component={HomePage}></Route>
<Route path="/listings" component={ListingsPage}></Route>
<Route path="/agents" component={AgentPage}></Route>
<Route path="/listing-page" component={ListingPage}></Route>
<Route path="/login" component={Account}></Route>
</BrowserRouter>
<Footer></Footer>
</div>

View file

@ -1,10 +0,0 @@
import React from "react";
import { shallow } from "enzyme";
import HomePage from "./homePage";
describe("HomePage", () => {
test("matches snapshot", () => {
const wrapper = shallow(<HomePage />);
expect(wrapper).toMatchSnapshot();
});
});

View file

@ -1 +0,0 @@
export { default } from "./homePage";

BIN
src/images/house1-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

BIN
src/images/house1-3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
src/images/house2-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

BIN
src/images/house2-3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

BIN
src/images/house3-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 KiB

BIN
src/images/house3-3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

BIN
src/images/house4-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

BIN
src/images/house4-3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -7,15 +7,17 @@
"ADDRESS": "8720 Russell Road",
"PRICE": "$500000",
"IMAGES":[
],
"AVAILABLE_AGENTS":[
],
"DESC":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui.",
"FULL_DESCRIPTION": "RUN DON'T WALK to this beautiful former Jayman show home. This home has every feature and convenience you could want in a home. When you enter you will be greeted with a large entry way, open concept main floor with a very spacious chef-like kitchen, the big eat in dinning area is an entertainers dream and plenty of room in the living room as to cozy up to the fireplace. When you head upstairs the owner 's suite will impress with a gorgeous ensuite consisting of a large soaker tub, oversized shower, separate vanities, in-floor heating and 2 separate closest. You will also find a nice sized flex room, spacious laundry room up stairs, 4 piece main bathroom and 2 more bedrooms. Then head downstairs where you will find another bedroom, bathroom and Theatre room with wet bar and beverage station that is perfect for any movie lover. Must not forget that this home is air conditioned, has front and back irrigation outside and speakers throughout the house. All of this can be yours in the lake community of Auburn Bay close to all amenities and year round lake access just a short distance away",
"FOR_SALE": true,
"coordinates": [-75.3372987731628, 45.383321536272049]
"coordinates": [-75.3372987731628, 45.383321536272049],
"BEDROOM": "2",
"BATHROOM": "4"
},
@ -32,8 +34,11 @@
],
"DESC":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui.",
"FULL_DESCRIPTION": "Nature at its Finest The Shores of Toney Bay are located at the mouth of River Phillip where it meets the Northumberland Straight with direct access to the incredible recreational waterways of River Phillip and nature rich Toney Bay. This nature lovers paradise boasts a plethora of migratory bird life and the rich fish stock of River Philip. The warm waters of the Northumberland Straight are swimmable from your shorefront, easy access to year-around activities and close proximity to the quaint community of Pugwash make this an ideal spot for a permeant residence or cottage. There are also ocean view / deeded access lots available. Large lots with unobstructed views and well away from highway noise. Swim in the warm waters at beautiful Heather's Beach just 4km away, fly fishing in the spring on River Phillip, book at tee time at Northumberland links, 16km away or enjoy a day at the Luxury Fox Harb'r Resort and Spa less then 30 mins away, and in winter enjoy skiing at Ski Wentworth a short 30 minutes drive. Lots are flat, cleared and ready for your dream home. All septic and building lot approvals are in place, good roads, and power to the lot line are included. Please take a few minutes to watch the video of the stunning Shores at Toney Bay",
"FOR_SALE": true,
"coordinates": [-75.546518086577947, 45.467134581917357]
"coordinates": [-75.546518086577947, 45.467134581917357],
"BEDROOM": "7",
"BATHROOM": "4"
@ -52,9 +57,11 @@
],
"DESC":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui.",
"FULL_DESCRIPTION": "Custom, Hi-Ranch home located in sought after neighborhood in the Heart of Petawawa. This home features 2+1 bedrooms and 4 bathrooms. Main level features spacious foyer, hardwood staircase, gleaming hardwood floors and open concept living. Large windows provide lots of natural light, vaulted ceilings in living room, a spectacular spacious kitchen with stainless steel appliances and large island. Master bedroom with walk through closet and 3 piece en-suite with custom tile shower and heated tile floor. Lower level features a finished rec room with cozy gas fireplace, bedroom and 3 piece bathroom. Patio door in foyer leads to large private backyard with no rear neighbours, spacious wood deck and hot tub. Double attached garage completes the package. Pack your backs and move right in! No Conveyances of offers until Friday April 9th at 3PM however the seller has the right to view and may accept pre-emptive offers",
"FOR_SALE": true,
"coordinates": [-75.898610599532319, 45.295014379864874]
"coordinates": [-75.898610599532319, 45.295014379864874],
"BEDROOM": "2",
"BATHROOM": "4"
@ -73,9 +80,12 @@
],
"DESC":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui.",
"FULL_DESCRIPTION": "Nestled in a quiet cul-de-sac in the family-friendly Ski Club/Widdifield neighbourhood, is 62 Riddle Court, a hidden gem that has everything you've been searching for - inside and out! Look up and take in the picturesque views of the escarpment, take a short walk or drive to the Laurentian Ski Hill with the family, or simply savour your very own property by having dinner on the patio, a glass of wine on the deck/balcony, and admire the breathtaking landscape (designed by an award-winning landscape artist) that wraps around your home. Lush perennials, tall grasses, interlocking brick pathways, in-ground sprinkler system and outdoor lighting make this property standout from the rest! Step inside to relish in all of the updated features this home has to offer - gleaming maple hardwood floors & stairs, updated maple kitchen cabinets, ceramic tile with in-floor radiant heat in bathrooms and office, built-in entertainment units, finished laundry room, low-maintenance composite deck off dining area, recessed lighting, updated windows, doors, insulation... the list goes on! Working from home these days? Enter the private & professional home office right off the recreation room through french doors. Enjoy the under-cabinet lighting, as well as the natural light beaming through the window with views of the backyard. Pride of ownership is obvious. Nothing left to do, but move-in! Pre-inspected for your peace of mind.",
"FOR_SALE": true,
"coordinates": [-75.468561642270757, 45.23032561834377]
"coordinates": [-75.468561642270757, 45.23032561834377],
"BEDROOM": "4",
"BATHROOM": "3"
}
]

View file

@ -0,0 +1,62 @@
.single-listing{
padding: 7% 15%;
/* background-color: darksalmon; */
}
.listing-header{
border: 1px solid black;
text-align: left;
padding: 1%;
}
.listing-title{
font-size: 2.5rem;
/* font-style: italic; */
}
.title-icon{
}
.listing-carousel{
margin: 5% 15%;
width: 70%;
/* padding-right: 10; */
}
.carousel-img{
/* width: 70%; */
}
.amentities{
border: 1px solid black;
/* padding: 5% 0; */
margin: 3% 40%;
padding: 1% 0%;
}
.amentities-text{
}
.amentities-icon{
margin: 0% 5%;
}
.description-box{
border: 1px solid black;
padding: 5%;
text-align: left;
}
.description-title{
padding: 2% 0%;
}
.listing-description{
}
.booking-btn{
padding: 2% 0%;
text-align: center;
}

View file

@ -1,9 +1,136 @@
import React, { Component } from "react";
import React from "react";
import "./listing-page.css";
class ListingPage extends Component {
render() {
return <div>ListingPage</div>;
}
}
// import house images
import house_img1 from "../../images/house1-2.jpg";
const ListingPage = () => {
return (
<div className="single-listing">
{/* Listing header */}
<div className="row listing-header">
<div className="col-12">
<h2 className="listing-title">
<i class="fas fa-home title-icon"></i> My title
</h2>
</div>
</div>
{/* Carousel for images of the listings */}
<div className="listing-carousel">
<div
id="carouselExampleControls"
class="carousel slide"
data-ride="carousel"
>
<div class="carousel-inner">
<div class="carousel-item active carousel-img">
<img
src={house_img1}
class="d-block w-100"
alt="listing-img"
></img>
</div>
<div class="carousel-item carousel-img">
<img
src={house_img1}
class="d-block w-100"
alt="listing-img"
></img>
</div>
<div class="carousel-item">
<img
src={house_img1}
class="d-block w-100"
alt="listing-img"
></img>
</div>
</div>
<a
class="carousel-control-prev"
href="#carouselExampleControls"
role="button"
data-slide="prev"
>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a
class="carousel-control-next"
href="#carouselExampleControls"
role="button"
data-slide="next"
>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
{/* Text box for listing amenities */}
<div className="amentities">
<span className="amentities-text">1</span>
<i class="fas fa-bed fa-2x amentities-icon"></i>
<span className="amentities-text">2</span>
<i class="fas fa-bath fa-2x amentities-icon"></i>
<span className="amentities-text">3</span>
<i class="fas fa-wifi fa-2x amentities-icon"></i>
</div>
{/* Description for the listing */}
<div className="description-box">
<h2 className="description-title">Description</h2>
<p className="listing-description">
MOVE IN READY I WALKING DISTANCE TO SHOPPING, SCHOOLS AND TRANSIT I
Conveniently located in Haysboro, you have Restaurants, Groceries,
Coffee shops, Schools and a Library all within walking distance. This
Updated Bungalow offers over 2000 square feet of developed living
space, 3 Bedrooms upstairs to accommodate almost any family and 2 down
stairs in the fully developed basement. Having a separate entrance
downstairs through the backyard makes it much easier if you ever want
to convert the basement into a suite. The double garage is even heated
with 220v plus 2 additional spaces that could be used for RV parking
or for any additional vehicles in the house. You will notice the home
has been tastefully updated over the years including a soaker tub in
the bathroom, in the kitchen your cabinetry goes right to the ceiling
for a nice finished look, granite counters and Kitchenaid appliances
and a new garburator. The entire property has a fresh coat of paint
inside and out, Newer windows and roof along with the Plumbing,
Electrical (Cat 5 connection throughout and 200amp service) has been
updated. Last but not least, the back deck already has gas and ready
for the BBQ season. With the BIG updates being done, all that is left
to do is enjoy Summer on the deck or enjoy a bonfire in your sunny
West facing backyard!
</p>
<div className="booking-btn">
<button type="button" class="btn btn-outline-success">
Book Showing
</button>
</div>
</div>
</div>
);
};
// sources for the images used
//images.adsttc.com/media/images/524c/2511/e8e4/4e67/bf00/03c3/large_jpg/Tetris_House_03.jpg?1380721927
//House description
// ->Link 1 -https://www.realtor.ca/real-estate/23018057/9811-elbow-drive-calgary-haysboro
// images
// 1 ->house1.jpg
// 2 ->//images.adsttc.com/media/images/524c/2511/e8e4/4e67/bf00/03c3/large_jpg/Tetris_House_03.jpg?1380721927
// 3 ->https://s3.amazonaws.com/on1-wp/wp-content/uploads/2018/08/3191-NW-Jenna-22-of-49v2-1024x683.jpg
//-> Link2 -> https://www.realtor.ca/real-estate/23020015/lot-14-67-seastone-drive-port-howe-port-howe
// 1 ->house2.jpg
// 2 ->https://static.photocdn.pt/images/articles/2019/12/24/How_to_Take_Gorgeous_Interior_Real_Estate_Photos.jpg
// 3 ->https://i.pinimg.com/originals/f3/72/87/f372870f4f99d3278193a3970aa394ce.jpg
//->Link3 -> https://www.realtor.ca/real-estate/23020040/1035-butler-boulevard-petawawa-laurentian-highlands
// 1 ->house3.jpg
// 2 ->https://miro.medium.com/max/1200/1*EyGqOwy0wQwKHUgi3xpQZA.png
// 3 ->https://i.pinimg.com/originals/9b/fe/76/9bfe76b23f7ed9dcb35f7553b8255f48.jpg
//->Link4 -> https://www.realtor.ca/real-estate/23020103/62-riddle-court-north-bay
// 1 ->house4.jpg
// 2 ->https://pictureitsoldfl.com/wp-content/uploads/2016/07/305-Rudder-Cay-Way-Jupiter-FL-print-014-28-Family-Room-4200x2800-300dpi-1170x780.jpg
// 3 ->https://www.tlcinteriors.com.au/wp-content/uploads/2018/06/hamptons-style-kitchen-from-metricon-bayville-display-home.jpg
export default ListingPage;

26
src/login-page/Login.css Normal file
View file

@ -0,0 +1,26 @@
.login-page{
padding: 10% 30%;
text-align: center;
background-color: pink;
}
.signin-Form{
border: 1px solid blanchedalmond;
border-radius: 2%;
}
.hr{
border-top: 2px dashed beige;
width: 30%;
}
.app-logo{
width: 15%;
}
.login-box{
padding: 0% 30%;
}
.login-btn{
margin: 10% 2%;
text-align: center;
}

58
src/login-page/Login.js Normal file
View file

@ -0,0 +1,58 @@
import React, { Component } from "react";
import Logo from "../images/logo1.png";
import "./Login.css";
class Login extends Component {
state = {
Accounts: [],
};
render() {
return (
<div className="login-page">
<form action="" className="signin-Form">
<img className="app-logo" src={Logo} alt="app-logo" />
<h1 className="form-title">Kene's Cribs</h1>
<p>Welcome please back, please sign in!</p>
<hr className="hr" />
<div className="login-box">
<div class="form-group">
<label for="email">Email address</label>
<input
type="email"
class="form-control"
id="login-email"
aria-describedby="emailHelp"
required
/>
</div>
<div class="form-group">
<label for="password">Password</label>
<input
type="password"
class="form-control"
id="login-password"
required
/>
</div>
<div class="form-group form-check">
<input
type="checkbox"
class="form-check-input"
id="exampleCheck1"
/>
<label class="form-check-label" for="exampleCheck1">
remember me
</label>
</div>
<div className="login-btn">
<button type="submit" class="btn btn-lg btn-primary">
Submit
</button>
</div>
</div>
</form>
</div>
);
}
}
export default Login;

View file

@ -0,0 +1,36 @@
.account-info{
padding: 7%;
text-align: center;
}
.account-header{
/* margin: 0% 2%; */
padding: 0% 2%;
}
.account-img{
width: 90%;
margin: 10% 12%;
}
.update-account{
text-align: left;
padding: 4% 7%;
}
.info-group{
padding: 1%;
}
.label-text{
font-weight: bold;
margin: 2%;
}
.update-input{
padding: 0% 10%;
}
.update-btn{
padding: 4% 2%;
text-align: left;
}

View file

@ -0,0 +1,145 @@
import React from "react";
import "./Account.css";
import Profile from "../../images/profile-picture.png";
const Account = () => {
return (
<div className="account-info">
<div className="account-header">
<h2 className="account-title">Personal Information</h2>
<p className="account-text">
You can update/edit your account information here
</p>
</div>
<div className="row account-box">
<div className="col-4">
<img src={Profile} alt="profile-img" className="account-img" />
</div>
<div className="col-8">
<form action="" className="update-account">
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
First Name
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-fname"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
Last Name
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-lname"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
Email
</label>
</div>
<div className="col-8 update-input">
<input
type="email"
class="form-control"
id="account-email"
aria-describedby="emailHelp"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
Phone Number
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-phoneNumber"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
Existing Password
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-existPassword"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
New password
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-newPassword"
required
/>
</div>
</div>
<div class="row form-group info-group">
<div className="col-4">
<label class="label-text" for="email">
Confirm New Password
</label>
</div>
<div className="col-8 update-input">
<input
type="text"
class="form-control"
id="account-confirmPassword"
required
/>
</div>
<div className="update-btn">
<button type="button" class="btn btn-lg btn-danger">
Update
</button>
</div>
</div>
</form>
</div>
</div>
<h2 className="account-title">Booked Appointments</h2>
</div>
);
};
//links
// https://www.pngitem.com/pimgs/m/146-1468479_my-profile-icon-blank-profile-picture-circle-hd.png
export default Account;

View file

@ -47,8 +47,15 @@ const Navbar = () => {
Contact Us
</Link>
</li>
<li className="nav-item">
<Link className="nav-link" to="/">
<Link className="nav-link" to="/listing-page">
listing-page
</Link>
</li>
<li className="nav-item">
<Link className="nav-link" to="/login">
Login
</Link>
</li>