diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1b6986c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# Code-Innovation-Series-NMAMIT
+Finite loop club - Incubate IND - online hackathon project submission.
diff --git a/public/404.html b/public/404.html
new file mode 100644
index 0000000..829eda8
--- /dev/null
+++ b/public/404.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+ Page Not Found
+
+
+
+
+
+
404
+
Page Not Found
+
The specified file was not found on this website. Please check the URL for mistakes and try again.
+
Why am I seeing this?
+
This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.
+
+
+
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..a11777c
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/images/afterp.jpg b/public/images/afterp.jpg
new file mode 100644
index 0000000..58ee876
Binary files /dev/null and b/public/images/afterp.jpg differ
diff --git a/public/images/ai.jpg b/public/images/ai.jpg
new file mode 100644
index 0000000..1aa62f0
Binary files /dev/null and b/public/images/ai.jpg differ
diff --git a/public/images/appetizers.jpg b/public/images/appetizers.jpg
new file mode 100644
index 0000000..ad0ac35
Binary files /dev/null and b/public/images/appetizers.jpg differ
diff --git a/public/images/backgroundw.jpg b/public/images/backgroundw.jpg
new file mode 100644
index 0000000..3cb159b
Binary files /dev/null and b/public/images/backgroundw.jpg differ
diff --git a/public/images/coffee.jpg b/public/images/coffee.jpg
new file mode 100644
index 0000000..4d26328
Binary files /dev/null and b/public/images/coffee.jpg differ
diff --git a/public/images/customer.jpg b/public/images/customer.jpg
new file mode 100644
index 0000000..3b65349
Binary files /dev/null and b/public/images/customer.jpg differ
diff --git a/public/images/gap.jpg b/public/images/gap.jpg
new file mode 100644
index 0000000..c844562
Binary files /dev/null and b/public/images/gap.jpg differ
diff --git a/public/images/hotelsmall.jpg b/public/images/hotelsmall.jpg
new file mode 100644
index 0000000..37ad2f0
Binary files /dev/null and b/public/images/hotelsmall.jpg differ
diff --git a/public/images/icecream.jpg b/public/images/icecream.jpg
new file mode 100644
index 0000000..0e6b6b5
Binary files /dev/null and b/public/images/icecream.jpg differ
diff --git a/public/images/indian.jpg b/public/images/indian.jpg
new file mode 100644
index 0000000..268245a
Binary files /dev/null and b/public/images/indian.jpg differ
diff --git a/public/images/luxehotel.jpg b/public/images/luxehotel.jpg
new file mode 100644
index 0000000..081275d
Binary files /dev/null and b/public/images/luxehotel.jpg differ
diff --git a/public/images/rasgulla.jpg b/public/images/rasgulla.jpg
new file mode 100644
index 0000000..11468bb
Binary files /dev/null and b/public/images/rasgulla.jpg differ
diff --git a/public/images/resort.jpg b/public/images/resort.jpg
new file mode 100644
index 0000000..ecd500f
Binary files /dev/null and b/public/images/resort.jpg differ
diff --git a/public/images/restaurant.jpg b/public/images/restaurant.jpg
new file mode 100644
index 0000000..11bb2ef
Binary files /dev/null and b/public/images/restaurant.jpg differ
diff --git a/public/images/smallhotel.jpg b/public/images/smallhotel.jpg
new file mode 100644
index 0000000..0a06eef
Binary files /dev/null and b/public/images/smallhotel.jpg differ
diff --git a/public/images/smoothie.jpg b/public/images/smoothie.jpg
new file mode 100644
index 0000000..2f8abb9
Binary files /dev/null and b/public/images/smoothie.jpg differ
diff --git a/public/images/snack.jpg b/public/images/snack.jpg
new file mode 100644
index 0000000..719c61f
Binary files /dev/null and b/public/images/snack.jpg differ
diff --git a/public/images/software.jpg b/public/images/software.jpg
new file mode 100644
index 0000000..6254f9e
Binary files /dev/null and b/public/images/software.jpg differ
diff --git a/public/images/waitqrlogo.png b/public/images/waitqrlogo.png
new file mode 100644
index 0000000..2958a49
Binary files /dev/null and b/public/images/waitqrlogo.png differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..c71069f
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ React App
+
+
+
+
+
+
+
diff --git a/public/logo192.png b/public/logo192.png
new file mode 100644
index 0000000..fc44b0a
Binary files /dev/null and b/public/logo192.png differ
diff --git a/public/logo512.png b/public/logo512.png
new file mode 100644
index 0000000..a4e47a6
Binary files /dev/null and b/public/logo512.png differ
diff --git a/public/manifest.json b/public/manifest.json
new file mode 100644
index 0000000..080d6c7
--- /dev/null
+++ b/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "React App",
+ "name": "Create React App Sample",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..416733e
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,44 @@
+* {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ font-family: "Fondamento", cursive;
+}
+
+.home,
+.services,
+.products,
+.sign-up {
+ display: flex;
+ height: 90vh;
+ align-items: center;
+ justify-content: center;
+ font-size: 3rem;
+}
+
+.services {
+ background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg");
+ background-position: center;
+ background-size: cover;
+ background-repeat: no-repeat;
+ color: #fff;
+ font-size: 100px;
+}
+
+.products {
+ background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg");
+ background-position: center;
+ background-size: fill;
+ background-repeat: no-repeat;
+ color: #fff;
+ font-size: 100px;
+}
+
+.sign-up {
+ background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg");
+ background-position: center;
+ background-size: cover;
+ background-repeat: no-repeat;
+ color: #fff;
+ font-size: 100px;
+}
diff --git a/src/App.js b/src/App.js
new file mode 100644
index 0000000..4bf0212
--- /dev/null
+++ b/src/App.js
@@ -0,0 +1,25 @@
+import React from "react";
+import Navbar from "./components/Navbar";
+import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
+import "./App.css";
+import Home from "./components/pages/Home";
+import Services from "./components/pages/Services";
+import Products from "./components/pages/Products";
+import SignUp from "./components/pages/SignUp";
+function App() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default App;
diff --git a/src/components/Button.css b/src/components/Button.css
new file mode 100644
index 0000000..9313379
--- /dev/null
+++ b/src/components/Button.css
@@ -0,0 +1,38 @@
+:root {
+ --primary: #fff;
+}
+.btn {
+ padding: 8px 20px;
+ border-radius: 2px;
+ outline: none;
+ border: none;
+ cursor: pointer;
+}
+.btn--primary {
+ background-color: var(--primary);
+ color: #242424;
+ border: 1px solid var(--primary);
+}
+.btn--outline {
+ background-color: transparent;
+ color: #fff;
+ padding: 8px 20px;
+ border: 1px solid var(--primary);
+ transition: all 0.3s ease-out;
+ font-family: "Fondamento", cursive;
+}
+.btn--medium {
+ padding: 8px 20px;
+ font-size: 18px;
+}
+.btn--large {
+ padding: 12px 26px;
+ font-size: 20px;
+}
+.btn--medium:hover,
+.btn--large:hover {
+ transition: all 0.3s ease-out;
+ background: #fff;
+ color: #242424;
+ transition: 250ms;
+}
diff --git a/src/components/Button.js b/src/components/Button.js
new file mode 100644
index 0000000..c8918e5
--- /dev/null
+++ b/src/components/Button.js
@@ -0,0 +1,31 @@
+import React from "react";
+import "./Button.css";
+import { Link } from "react-router-dom";
+const STYLES = ["btn--primary", "btn--outline"];
+
+const SIZES = ["btn--medium", "btn--large"];
+
+export const Button = ({
+ children,
+ type,
+ onClick,
+ buttonStyle,
+ buttonSize,
+}) => {
+ const checkButtonStyle = STYLES.includes(buttonStyle)
+ ? buttonStyle
+ : STYLES[0];
+ const checkButtonSize = SIZES.includes(buttonSize) ? buttonSize : SIZES[0];
+
+ return (
+
+
+
+ );
+};
diff --git a/src/components/CardItem.js b/src/components/CardItem.js
new file mode 100644
index 0000000..9bc28ec
--- /dev/null
+++ b/src/components/CardItem.js
@@ -0,0 +1,25 @@
+import React from "react";
+import { Link } from "react-router-dom";
+
+function CardItem(props) {
+ return (
+ <>
+
+
+
+
+
+
+
{props.text}
+
+
+
+ >
+ );
+}
+
+export default CardItem;
diff --git a/src/components/Cards.css b/src/components/Cards.css
new file mode 100644
index 0000000..6ac4533
--- /dev/null
+++ b/src/components/Cards.css
@@ -0,0 +1,118 @@
+.cards {
+ padding: 4rem;
+ background: #fff;
+}
+
+h1 {
+ text-align: center;
+}
+
+.cards__container {
+ display: flex;
+ flex-flow: column;
+ align-items: center;
+ max-width: 1120px;
+ width: 90%;
+ margin: 0 auto;
+}
+
+.cards__wrapper {
+ position: relative;
+ margin: 50px 0 45px;
+}
+
+.cards__items {
+ margin-bottom: 24px;
+}
+
+.cards__item {
+ display: flex;
+ flex: 1;
+ margin: 0 1rem;
+ border-radius: 10px;
+}
+
+.cards__item__link {
+ display: flex;
+ flex-flow: column;
+ width: 100%;
+ box-shadow: 0 6px 20px rgba(56, 125, 255, 0.17);
+ -webkit-filter: drop-shadow(0 6px 20px rgba(56, 125, 255, 0.017));
+ filter: drop-shadow(0 6px 20px rgba(56, 125, 255, 0.017));
+ border-radius: 10px;
+ overflow: hidden;
+ text-decoration: none;
+}
+
+.cards__item__pic-wrap {
+ position: relative;
+ width: 100%;
+ padding-top: 67%;
+ overflow: hidden;
+}
+
+.fade-img {
+ animation-name: fade-img;
+ animation-duration: 2s;
+}
+
+.cards__item__pic-wrap::after {
+ content: attr(data-category);
+ position: absolute;
+ bottom: 0;
+ margin-left: 10px;
+ padding: 6px 8px;
+ max-width: calc((100%) - 60px);
+ font-size: 12px;
+ font-weight: 700;
+ color: #fff;
+ background-color: black;
+ box-sizing: border-box;
+}
+
+.cards__item__img {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ height: 100%;
+ max-height: 100%;
+ object-fit: cover;
+ transition: all 0.2s linear;
+}
+
+.cards__item__img:hover {
+ transform: scale(1.1);
+}
+
+.cards__item__info {
+ padding: 20px 30px 30px;
+}
+
+.cards__item__text {
+ color: #252e48;
+ font-size: 18px;
+ line-height: 24px;
+}
+
+@media only screen and (min-width: 1200px) {
+ .content__blog__container {
+ width: 84%;
+ }
+}
+
+@media only screen and (min-width: 1024px) {
+ .cards__items {
+ display: flex;
+ }
+}
+
+@media only screen and (max-width: 1024px) {
+ .cards__item {
+ margin-bottom: 2rem;
+ }
+}
diff --git a/src/components/Cards.js b/src/components/Cards.js
new file mode 100644
index 0000000..0a6bdf5
--- /dev/null
+++ b/src/components/Cards.js
@@ -0,0 +1,51 @@
+import React from "react";
+import "./Cards.css";
+import CardItem from "./CardItem";
+
+function Cards() {
+ return (
+
+
Check out these Amazing reviews!
+
+
+ );
+}
+
+export default Cards;
diff --git a/src/components/Footer.css b/src/components/Footer.css
new file mode 100644
index 0000000..a34fd38
--- /dev/null
+++ b/src/components/Footer.css
@@ -0,0 +1,161 @@
+.footer-container {
+ background-color: #242424;
+ padding: 4rem 0 2rem 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.footer-subscription {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+
+ margin-bottom: 24px;
+ padding: 24px;
+ color: #fff;
+}
+
+.footer-subscription > p {
+ font-family: "Fondamento", cursive;
+}
+
+.footer-subscription-heading {
+ margin-bottom: 24px;
+ font-size: 24px;
+}
+
+.footer-subscription-text {
+ margin-bottom: 24px;
+ font-size: 20px;
+}
+
+.footer-input {
+ padding: 8px 20px;
+ border-radius: 2px;
+ margin-right: 10px;
+ outline: none;
+ border: none;
+ font-size: 18px;
+ margin-bottom: 16px;
+ border: 1px solid #fff;
+}
+
+.footer-links {
+ width: 100%;
+ max-width: 1000px;
+ display: flex;
+ justify-content: center;
+}
+
+.footer-link-wrapper {
+ display: flex;
+}
+
+.footer-link-items {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ margin: 16px;
+ text-align: left;
+ width: 160px;
+ box-sizing: border-box;
+}
+
+.footer-link-items h2 {
+ margin-bottom: 16px;
+}
+
+.footer-link-items > h2 {
+ color: #fff;
+}
+
+.footer-link-items a {
+ color: #fff;
+ text-decoration: none;
+ margin-bottom: 0.5rem;
+}
+
+.footer-link-items a:hover {
+ color: #e9e9e9;
+ transition: 0.3s ease-out;
+}
+
+.footer-email-form h2 {
+ margin-bottom: 2rem;
+}
+
+.footer-input::placeholder {
+ color: #b1b1b1;
+}
+
+/* Social Icons */
+.social-icon-link {
+ color: #fff;
+ font-size: 24px;
+}
+
+.social-media {
+ max-width: 1000px;
+ width: 100%;
+}
+.social-media-wrap {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 90%;
+ max-width: 1000px;
+ margin: 40px auto 0 auto;
+}
+
+.social-icons {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 240px;
+}
+
+.social-logo {
+ color: #fff;
+ justify-self: start;
+ margin-left: 20px;
+ cursor: pointer;
+ text-decoration: none;
+ font-size: 2rem;
+ display: flex;
+ align-items: center;
+ margin-bottom: 16px;
+}
+
+.website-rights {
+ color: #fff;
+ margin-bottom: 16px;
+}
+
+@media screen and (max-width: 820px) {
+ .footer-links {
+ padding-top: 2rem;
+ }
+
+ .footer-input {
+ width: 100%;
+ }
+
+ .btn {
+ width: 100%;
+ }
+
+ .footer-link-wrapper {
+ flex-direction: column;
+ }
+
+ .social-media-wrap {
+ flex-direction: column;
+ }
+}
+
+@media screen and (max-width: 768px) {
+}
diff --git a/src/components/Footer.js b/src/components/Footer.js
new file mode 100644
index 0000000..cded00b
--- /dev/null
+++ b/src/components/Footer.js
@@ -0,0 +1,115 @@
+import React from "react";
+import "./Footer.css";
+import { Button } from "./Button";
+import { Link } from "react-router-dom";
+
+function Footer() {
+ return (
+
+
+
+ Join us to get a weekly newsletter and receive our best hotel deals
+
+
+ You can unsubscribe any time.
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Footer;
diff --git a/src/components/HeroSection.css b/src/components/HeroSection.css
new file mode 100644
index 0000000..cf6b1c7
--- /dev/null
+++ b/src/components/HeroSection.css
@@ -0,0 +1,64 @@
+.hero-container {
+ background: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg") center
+ center/cover no-repeat;
+ height: 100vh;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.2);
+ object-fit: contain;
+}
+
+.hero-container > h1 {
+ color: #fff;
+ font-size: 100px;
+ margin-top: -100px;
+}
+
+.hero-container > p {
+ margin-top: 8px;
+ color: #fff;
+ font-size: 32px;
+ font-family: "Fondamento", cursive;
+}
+
+.hero-btns {
+ margin-top: 32px;
+}
+
+.hero-btns .btn {
+ margin: 6px;
+}
+
+.fa-play-circle {
+ margin-left: 4px;
+}
+
+@media screen and (max-width: 960px) {
+ .hero-container > h1 {
+ font-size: 70px;
+ margin-top: -150px;
+ }
+}
+
+@media screen and (max-width: 768px) {
+ .hero-container > h1 {
+ font-size: 50px;
+ margin-top: -100px;
+ }
+
+ .hero-container > p {
+ font-size: 30px;
+ }
+
+ .btn-mobile {
+ display: block;
+ text-decoration: none;
+ }
+
+ .btn {
+ width: 100%;
+ }
+}
diff --git a/src/components/HeroSection.js b/src/components/HeroSection.js
new file mode 100644
index 0000000..b2c631f
--- /dev/null
+++ b/src/components/HeroSection.js
@@ -0,0 +1,33 @@
+import React from "react";
+import "../App.css";
+import { Button } from "./Button";
+import "./HeroSection.css";
+function HeroSection() {
+ return (
+
+ {/*
*/}
+
Hassle Free Orders
+
What are you waiting for?
+
+
+
+
+
+
+ );
+}
+
+export default HeroSection;
diff --git a/src/components/Navbar.css b/src/components/Navbar.css
new file mode 100644
index 0000000..7ae0df6
--- /dev/null
+++ b/src/components/Navbar.css
@@ -0,0 +1,158 @@
+.navbar {
+ background: linear-gradient(90deg, rgb(28, 27, 27) 0%, rgb(26, 23, 23) 100%);
+ height: 80px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.2rem;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+}
+
+.navbar-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 80px;
+ max-width: 1500px;
+}
+
+.navbar-logo {
+ color: #fff;
+ justify-self: start;
+ margin-left: 20px;
+ cursor: pointer;
+ text-decoration: none;
+ font-size: 2rem;
+ display: flex;
+ align-items: center;
+}
+
+.fa-typo3 {
+ margin-left: 0.5rem;
+ font-size: 1.8rem;
+}
+
+.nav-menu {
+ display: grid;
+ grid-template-columns: repeat(4, auto);
+ grid-gap: 10px;
+ list-style: none;
+ text-align: center;
+ width: 60vw;
+ justify-content: end;
+ margin-right: 2rem;
+}
+
+.nav-item {
+ height: 80px;
+}
+
+.nav-links {
+ color: #fff;
+ display: flex;
+ align-items: center;
+ text-decoration: none;
+ padding: 0.5rem 1rem;
+ height: 100%;
+}
+
+.nav-links:hover {
+ border-bottom: 4px solid #fff;
+ transition: all 0.2s ease-out;
+}
+
+.fa-bars {
+ color: #fff;
+}
+
+.nav-links-mobile {
+ display: none;
+}
+
+.menu-icon {
+ display: none;
+}
+
+@media screen and (max-width: 960px) {
+ .NavbarItems {
+ position: relative;
+ }
+
+ .nav-menu {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 90vh;
+ position: absolute;
+ top: 80px;
+ left: -100%;
+ opacity: 1;
+ transition: all 0.5s ease;
+ }
+
+ .nav-menu.active {
+ background: #242222;
+ left: 0;
+ opacity: 1;
+ transition: all 0.5s ease;
+ z-index: 1;
+ }
+
+ .nav-links {
+ text-align: center;
+ padding: 2rem;
+ width: 100%;
+ display: table;
+ }
+
+ .nav-links:hover {
+ background-color: #fff;
+ color: #242424;
+ border-radius: 0;
+ }
+
+ .navbar-logo {
+ position: absolute;
+ top: 0;
+ left: 0;
+ transform: translate(25%, 50%);
+ }
+
+ .menu-icon {
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ transform: translate(-100%, 60%);
+ font-size: 1.8rem;
+ cursor: pointer;
+ }
+
+ .fa-times {
+ color: #fff;
+ font-size: 2rem;
+ }
+
+ .nav-links-mobile {
+ display: block;
+ text-align: center;
+ margin: 2rem auto;
+ border-radius: 4px;
+ width: 80%;
+ text-decoration: none;
+ font-size: 1.5rem;
+ background-color: transparent;
+ color: #fff;
+ padding: 14px 20px;
+ border: 1px solid #fff;
+ transition: all 0.3s ease-out;
+ }
+
+ .nav-links-mobile:hover {
+ background: #fff;
+ color: #242424;
+ transition: 250ms;
+ }
+}
diff --git a/src/components/Navbar.js b/src/components/Navbar.js
new file mode 100644
index 0000000..ab8a3c3
--- /dev/null
+++ b/src/components/Navbar.js
@@ -0,0 +1,73 @@
+import React, { useState, useEffect } from "react";
+import { Button } from "./Button";
+import { Link } from "react-router-dom";
+import "./Navbar.css";
+function Navbar() {
+ const [click, setClick] = useState(false);
+ const [button, setButton] = useState(true);
+
+ const handleClick = () => setClick(!click);
+ const closeMobileMenu = () => setClick(false);
+
+ const showButton = () => {
+ if (window.innerWidth <= 960) {
+ setButton(false);
+ } else {
+ setButton(true);
+ }
+ };
+ useEffect(() => {
+ showButton();
+ }, []);
+ window.addEventListener("resize", showButton);
+ return (
+ <>
+
+ >
+ );
+}
+
+export default Navbar;
diff --git a/src/components/pages/AboutCardItem.js b/src/components/pages/AboutCardItem.js
new file mode 100644
index 0000000..dca46fe
--- /dev/null
+++ b/src/components/pages/AboutCardItem.js
@@ -0,0 +1,25 @@
+import React from "react";
+import { Link } from "react-router-dom";
+
+function AboutCardItem(props) {
+ return (
+ <>
+
+
+
+
+
+
+
{props.text}
+
+
+
+ >
+ );
+}
+
+export default AboutCardItem;
diff --git a/src/components/pages/AboutCards.js b/src/components/pages/AboutCards.js
new file mode 100644
index 0000000..6bb9282
--- /dev/null
+++ b/src/components/pages/AboutCards.js
@@ -0,0 +1,58 @@
+import React from "react";
+import "../Cards.css";
+import AboutCardItem from "./AboutCardItem";
+
+function AboutCards() {
+ return (
+
+ );
+}
+
+export default AboutCards;
diff --git a/src/components/pages/Home.js b/src/components/pages/Home.js
new file mode 100644
index 0000000..efc0b43
--- /dev/null
+++ b/src/components/pages/Home.js
@@ -0,0 +1,16 @@
+import React from "react";
+import "../../App.css";
+import Cards from "../Cards";
+import Footer from "../Footer";
+import HeroSection from "../HeroSection";
+
+function Home() {
+ return (
+ <>
+
+
+
+ >
+ );
+}
+export default Home;
diff --git a/src/components/pages/Products.js b/src/components/pages/Products.js
new file mode 100644
index 0000000..23b401d
--- /dev/null
+++ b/src/components/pages/Products.js
@@ -0,0 +1,16 @@
+import React from "react";
+import "../../App.css";
+import AboutCards from "./AboutCards";
+import "../Cards.css";
+import Footer from "../Footer";
+import CardItem from "../CardItem";
+
+export default function Products() {
+ return (
+ <>
+ ABOUT US
;
+
+
+ >
+ );
+}
diff --git a/src/components/pages/Services.js b/src/components/pages/Services.js
new file mode 100644
index 0000000..ef0441e
--- /dev/null
+++ b/src/components/pages/Services.js
@@ -0,0 +1,14 @@
+import React from "react";
+import "../../App.css";
+import ServicesCards from "./ServicesCards";
+import "../Cards.css";
+import Footer from "../Footer";
+export default function Services() {
+ return (
+ <>
+ MENU
+
+
+ >
+ );
+}
diff --git a/src/components/pages/ServicesCards.js b/src/components/pages/ServicesCards.js
new file mode 100644
index 0000000..91b5966
--- /dev/null
+++ b/src/components/pages/ServicesCards.js
@@ -0,0 +1,64 @@
+import React from "react";
+import "../Cards.css";
+import AboutCardItem from "./AboutCardItem";
+
+function ServicesCards() {
+ return (
+
+ );
+}
+
+export default ServicesCards;
diff --git a/src/components/pages/SignUp.css b/src/components/pages/SignUp.css
new file mode 100644
index 0000000..797a7c8
--- /dev/null
+++ b/src/components/pages/SignUp.css
@@ -0,0 +1,92 @@
+@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap");
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ background-color: rgb(248, 246, 253);
+}
+
+body,
+input,
+textarea,
+button {
+ font-family: "Inter", sans-serif;
+}
+
+.App {
+ width: 400px;
+ margin: 0 auto;
+ height: 100vh;
+}
+
+/* Contact.js */
+.form {
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 4rem;
+}
+
+.form > h3 {
+ margin-bottom: 30px;
+}
+
+.form > input,
+textarea {
+ padding: 20px;
+ border-radius: 3px;
+ /* box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.137); */
+ margin-bottom: 20px;
+ border: 1px solid lightgray;
+ /* border: none; */
+ background: #fff;
+ font-size: 16px;
+ color: rgb(0, 0, 32);
+ outline: none;
+}
+
+.form > input:focus,
+textarea:focus {
+ border: 1px solid rgb(85, 0, 196);
+}
+
+.form > textarea {
+ height: 150px;
+ max-width: 400px;
+ min-height: 100px;
+}
+
+.form > label {
+ padding-bottom: 10px;
+ color: rgb(0, 0, 32);
+ font-weight: bold;
+}
+
+.form > button {
+ padding: 20px;
+ border: none;
+ background-color: rgb(85, 0, 196);
+ font-weight: 500;
+ font-size: 20px;
+ border-radius: 3px;
+ color: #fff;
+ cursor: pointer;
+ transition: 0.2s ease-in-out;
+ margin-top: 10px;
+}
+
+.form > button:hover {
+ background-color: rgb(85, 0, 196);
+}
+
+@media screen and (max-width: 960px) {
+ .signup-container > h1 {
+ font-size: 70px;
+ margin-top: -50px;
+ }
+}
diff --git a/src/components/pages/SignUp.js b/src/components/pages/SignUp.js
new file mode 100644
index 0000000..1562efb
--- /dev/null
+++ b/src/components/pages/SignUp.js
@@ -0,0 +1,75 @@
+import React, { useState, useEffect } from "react";
+import "../../App.css";
+import "./SignUp.css";
+import { db } from "../../firebase";
+import Footer from "../Footer";
+const SignUp = () => {
+ const [name, setName] = useState("");
+ const [email, setEmail] = useState("");
+ const [message, setMessage] = useState("");
+
+ const [loader, setLoader] = useState(false);
+
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ setLoader(true);
+
+ db.collection("contacts")
+ .add({
+ name: name,
+ email: email,
+ message: message,
+ })
+ .then(() => {
+ setLoader(false);
+ alert("Your message has been submitted");
+ setLoader(false);
+ })
+ .catch((error) => {
+ alert(error.message);
+ setLoader(false);
+ });
+
+ setName("");
+ setEmail("");
+ setMessage("");
+ };
+
+ return (
+
+
CONTACT US
+
+
+
+ );
+};
+
+export default SignUp;
diff --git a/src/firebase.js b/src/firebase.js
new file mode 100644
index 0000000..a2c8c6a
--- /dev/null
+++ b/src/firebase.js
@@ -0,0 +1,14 @@
+import firebase from "firebase";
+
+var firebaseApp = firebase.initializeApp({
+ apiKey: "AIzaSyBVPviB5yWGOZZFnHVVU4_0T_G4ZXiAkf0",
+ authDomain: "waitqrcontact.firebaseapp.com",
+ databaseURL: "https://waitqrcontact.firebaseio.com",
+ projectId: "waitqrcontact",
+ storageBucket: "waitqrcontact.appspot.com",
+ messagingSenderId: "603592388623",
+ appId: "1:603592388623:web:42bafc8d9819eeecb2737a",
+});
+
+var db = firebaseApp.firestore();
+export { db };
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..2727b68
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,12 @@
+import React from "react";
+import ReactDOM from "react-dom";
+
+import App from "./App";
+import reportWebVitals from "./reportWebVitals";
+
+ReactDOM.render(, document.getElementById("root"));
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals();
diff --git a/src/reportWebVitals.js b/src/reportWebVitals.js
new file mode 100644
index 0000000..5253d3a
--- /dev/null
+++ b/src/reportWebVitals.js
@@ -0,0 +1,13 @@
+const reportWebVitals = onPerfEntry => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+ getCLS(onPerfEntry);
+ getFID(onPerfEntry);
+ getFCP(onPerfEntry);
+ getLCP(onPerfEntry);
+ getTTFB(onPerfEntry);
+ });
+ }
+};
+
+export default reportWebVitals;