From e330a053f4ff1df50778b2050f6827da533c0aea Mon Sep 17 00:00:00 2001 From: Pratham-Jain-3903 Date: Sat, 26 Oct 2024 05:54:08 +0530 Subject: [PATCH] adding the frontend :) --- Frontend/App.css | 145 ++++++++++++++++++ Frontend/App.jsx | 69 +++++++++ Frontend/Home.jsx | 35 +++++ .../assets/font/FoundersGrotesk-Semibold.ttf | Bin 0 -> 13544 bytes Frontend/assets/font/NeueMontreal-Regular.ttf | Bin 0 -> 55800 bytes Frontend/assets/react.svg | 1 + Frontend/components/About.jsx | 17 ++ Frontend/components/GrafanaDashboards.jsx | 39 +++++ Frontend/components/Huffer.jsx | 37 +++++ Frontend/components/Landingpage.jsx | 73 +++++++++ Frontend/components/Navbar.jsx | 27 ++++ Frontend/image.png | Bin 0 -> 44116 bytes Frontend/index.css | 17 ++ Frontend/index.js | 19 +++ Frontend/main.jsx | 20 +++ Frontend/services/grafanaService.jsx | 23 +++ Frontend/services/index.html | 14 ++ 17 files changed, 536 insertions(+) create mode 100644 Frontend/App.css create mode 100644 Frontend/App.jsx create mode 100644 Frontend/Home.jsx create mode 100644 Frontend/assets/font/FoundersGrotesk-Semibold.ttf create mode 100644 Frontend/assets/font/NeueMontreal-Regular.ttf create mode 100644 Frontend/assets/react.svg create mode 100644 Frontend/components/About.jsx create mode 100644 Frontend/components/GrafanaDashboards.jsx create mode 100644 Frontend/components/Huffer.jsx create mode 100644 Frontend/components/Landingpage.jsx create mode 100644 Frontend/components/Navbar.jsx create mode 100644 Frontend/image.png create mode 100644 Frontend/index.css create mode 100644 Frontend/index.js create mode 100644 Frontend/main.jsx create mode 100644 Frontend/services/grafanaService.jsx create mode 100644 Frontend/services/index.html diff --git a/Frontend/App.css b/Frontend/App.css new file mode 100644 index 0000000..9df32c3 --- /dev/null +++ b/Frontend/App.css @@ -0,0 +1,145 @@ +body { + font-family: 'Raleway', sans-serif; + background-color: #3B3D3B; +} +.wrapper { + width: 800px; + height: 600px; + position: relative; + margin: 3% auto; + box-shadow: 2px 18px 70px 0px #9D9D9D; + overflow: hidden; +} + +.login-text { + width: 800px; + height:450px; + background: linear-gradient(to left, #ab68ca, #de67a3); + position: absolute; + top: -300px; + box-sizing: border-box; + padding: 6%; + transition: all 0.5s ease-in-out; + z-index: 11; +} + +.text { + margin-left: 20px; + color: #fff; + display: none; + transition: all 0.5s ease-in-out; + transition-delay: 0.3s; + + a, a:visited { + font-size: 36px; + color: #fff; + text-decoration: none; + font-weight: bold; + display: block; + } + + hr { + width: 10%; + float: left; + background-color: #fff; + font-size: 16px; + } + + input { + margin-top: 30px; + height: 40px; + width: 300px; + border-radius: 2px; + border: none; + background-color: #444; + opacity: 0.6; + outline: none; + color: #fff; + padding-left: 10px; + } + + input[type=text] { + margin-top: 60px; + } + + button { + margin-top: 60px; + height: 40px; + width: 140px; + outline: none; + } + + .login-btn { + background: #fff; + border: none; + border-radius: 2px; + color: #696a86; + } + + .signup-btn { + background: transparent; + border: 2px solid #fff;; + border-radius: 2px; + color: #fff; + margin-left: 30px; + } +} + +.cta { + width: 60px; + height: 60px; + border-radius: 50%; + background: #696a86; + border: 2px solid #fff; + position: absolute; + bottom: -30px; + left: 370px; + color: #fff; + outline: none; + cursor: pointer; + z-index: 11; +} + +.call-text { + background-color: #fff; + width: 800px; + height: 450px; + position: absolute; + bottom: 0; + padding: 10%; + box-sizing: border-box; + text-align: center; + + h1 { + font-size: 42px; + margin-top: 10%; + color: #696a86; + + span { + color: #333; + font-weight: bolder; + + } + } + + button { + height: 40px; + width: 180px; + border: none; + border-radius: 20px; + background: linear-gradient(to left, #ab68ca, #de67a3); + color: #fff; + font-weight: bolder; + margin-top: 30px; + cursor: pointer; + outline: none; + } +} + +.show-hide { + display: block; +} + +.expand { + transform: translateY(300px); +} diff --git a/Frontend/App.jsx b/Frontend/App.jsx new file mode 100644 index 0000000..24797de --- /dev/null +++ b/Frontend/App.jsx @@ -0,0 +1,69 @@ + +import React, { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import './App.css'; // Your global styles + +const App = () => { + const [username, setUsername] = useState(''); + const [password, setPassword] = useState(''); + const navigate = useNavigate(); + const [showLogin, setShowLogin] = useState(false); // Toggle Login Section + const [ctaIcon, setCtaIcon] = useState('fas fa-chevron-down'); // Initial icon state + + const handleLogin = () => { + // Check credentials + if (username === 'luminous' && password === 'luminous') { + navigate('/home'); // Redirect to Home Page + } else { + alert('Invalid Username or Password'); // Simple Alert for Error + } + }; + + const handleToggle = () => { + setShowLogin((prev) => !prev); + // Change icon based on the current state + setCtaIcon((prev) => (prev === 'fas fa-chevron-down' ? 'fas fa-chevron-up' : 'fas fa-chevron-down')); + }; + + return ( +
+
+ + {/* Show the login form based on the showLogin state */} +
+ Login +
+
+ setUsername(e.target.value)} + /> +
+ setPassword(e.target.value)} + /> +
+ +
+
+ +
+

+ LUMINOUS MEANS SAVING'S +

+ +
+
+ ); +}; + +export default App; diff --git a/Frontend/Home.jsx b/Frontend/Home.jsx new file mode 100644 index 0000000..41cc984 --- /dev/null +++ b/Frontend/Home.jsx @@ -0,0 +1,35 @@ +import React from 'react'; + +const Home = () => { + return ( +
{/* Use a viewport height for the main container */} + {/* First Part: 25-35-40 Ratio */} +
+
+ +
+
+ +
+
+ +
+
+ + {/* Second Part: 35-65 Ratio */} +
+
+ +
+
+ +
+
+ +
+
+
+ ); +}; + +export default Home; diff --git a/Frontend/assets/font/FoundersGrotesk-Semibold.ttf b/Frontend/assets/font/FoundersGrotesk-Semibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35545c8a27472f49a29a093fcfdeee273beda2e7 GIT binary patch literal 13544 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%0AmzNh|89pA(03jKY=vG)~< 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 literal 0 HcmV?d00001 diff --git a/Frontend/assets/react.svg b/Frontend/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/Frontend/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Frontend/components/About.jsx b/Frontend/components/About.jsx new file mode 100644 index 0000000..b4d4451 --- /dev/null +++ b/Frontend/components/About.jsx @@ -0,0 +1,17 @@ +import React from 'react' + +function About() { + return ( +
+
+ Ochi is a strategic presentation agency for forward-thinking businesses that need to raise funds, sell prod­ucts, ex­plain com­plex ideas, and hire great peo­ple. +
+
+
+

kri

+
+
+ ) +} + +export default About \ No newline at end of file diff --git a/Frontend/components/GrafanaDashboards.jsx b/Frontend/components/GrafanaDashboards.jsx new file mode 100644 index 0000000..c73bbb6 --- /dev/null +++ b/Frontend/components/GrafanaDashboards.jsx @@ -0,0 +1,39 @@ +// src/components/GrafanaDashboard.js +import React, { useEffect, useState } from 'react'; +import { getDashboard } from '../services/grafanaService'; + +const GrafanaDashboard = ({ dashboardId }) => { + const [dashboard, setDashboard] = useState(null); + + useEffect(() => { + const fetchDashboard = async () => { + try { + const data = await getDashboard(dashboardId); + setDashboard(data); + } catch (error) { + console.error('Failed to fetch dashboard:', error); + } + }; + + fetchDashboard(); + }, [dashboardId]); + + if (!dashboard) { + return
Loading...
; + } + + return ( +
+

{dashboard.dashboard.title}

+ +
+ ); +}; + +export default GrafanaDashboard; diff --git a/Frontend/components/Huffer.jsx b/Frontend/components/Huffer.jsx new file mode 100644 index 0000000..88b4834 --- /dev/null +++ b/Frontend/components/Huffer.jsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { motion } from 'framer-motion'; + +function Huffer() { + return ( +
+
+ + WE ARE OCHI + + + WE ARE OCHI WE ARE OCHI + + + WE ARE OCHI WE ARE OCHI + +
+
+ ); +} + +export default Huffer; diff --git a/Frontend/components/Landingpage.jsx b/Frontend/components/Landingpage.jsx new file mode 100644 index 0000000..821397b --- /dev/null +++ b/Frontend/components/Landingpage.jsx @@ -0,0 +1,73 @@ +import React from 'react'; + +function Landingpage() { + const grafanaURL = + 'https://krishnafauj02.grafana.net/public-dashboards/9942ae56688b4a73b89370d6040bb2d6'; + + return ( +
+ {/* First Section (1/4 height) */} +
+ + + + + \ No newline at end of file