diff --git a/.gitignore b/.gitignore index 1437c53..f867811 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ yarn-error.log* # vercel .vercel +/public/core +/public/ui diff --git a/components/art.js b/components/art.js new file mode 100644 index 0000000..e69de29 diff --git a/components/art.style.jsx b/components/art.style.jsx new file mode 100644 index 0000000..e69de29 diff --git a/components/contact.js b/components/contact.js new file mode 100644 index 0000000..e69de29 diff --git a/components/contact.style.jsx b/components/contact.style.jsx new file mode 100644 index 0000000..e69de29 diff --git a/components/discord-activity.jsx b/components/discord-activity.jsx index 2cf2d75..670ae4d 100644 --- a/components/discord-activity.jsx +++ b/components/discord-activity.jsx @@ -105,59 +105,102 @@ export default function DiscordActivity() { ); } else { - return ( - - {!loading && ( - <> -
-
- {status.activities[1] && ( - - )} + console.log("Hmmm Recv"); + if (status.activities[1].name === "Spotify") { + return ( + + {!loading && ( + <> +
+
+ {} +
+
+ { + + } +
-
- {status.activities[1] && ( - - )} +
+
+ {status.activities[1] && status.activities[1].name} +
+
+ {status.activities[1] && status.activities[1].details} +
+
+ {status.activities[1] && status.activities[1].state + ? status.activities[1].state + : null} +
+
+
+ {status?.activities[1]?.timestamps?.start && time} +
-
-
-
- {status.activities[1] && status.activities[1].name} + + )} + + ); + } else { + return ( + + {!loading && ( + <> +
+
+ {status.activities[1] && ( + + )} +
+
+ {status.activities[1] && ( + + )} +
-
- {status.activities[1] && status.activities[1].details} +
+
+ {status.activities[1] && status.activities[1].name} +
+
+ {status.activities[1] && status.activities[1].details} +
+
+ {status.activities[1] && status.activities[1].state + ? status.activities[1].state + : null} +
+
+
+ {status?.activities[1]?.timestamps?.start && time} +
-
- {status.activities[1] && status.activities[1].state - ? status.activities[1].state - : null} -
-
-
- {status?.activities[1]?.timestamps?.start && time} -
-
- - )} -
- ); + + )} + + ); + } } } else if ( !loading && diff --git a/components/discord-activity.style.jsx b/components/discord-activity.style.jsx index 3b55451..59b7374 100644 --- a/components/discord-activity.style.jsx +++ b/components/discord-activity.style.jsx @@ -7,9 +7,15 @@ export const DicordActivityStyle = styled.div` justify-content: start; width: 400px; min-height: 75px; - background-color: #7289da; + background: rgb(131, 58, 180); + background: linear-gradient( + 90deg, + rgba(131, 58, 180, 1) 0%, + rgba(253, 29, 29, 1) 50%, + rgba(252, 176, 69, 1) 100% + ); border-radius: 6px; - padding: 1em 0.8em; + padding: 0.3em 0.8em; .discord-icons { display: flex; @@ -52,4 +58,10 @@ export const DicordActivityStyle = styled.div` margin-left: 1em; font-size: 0.9em; } + .discord-message-application { + font-size: 1.3em; + } + .discord-message-activity { + font-size: 1.1em; + } `; diff --git a/components/main.jsx b/components/main.jsx index 522524f..e585139 100644 --- a/components/main.jsx +++ b/components/main.jsx @@ -31,6 +31,7 @@ function Main() {
+
- */}
); diff --git a/components/main.style.jsx b/components/main.style.jsx index 8843580..35e0e05 100644 --- a/components/main.style.jsx +++ b/components/main.style.jsx @@ -1,11 +1,20 @@ import styled from "styled-components"; export default styled.main` + padding-top: 15px; display: flex; height: 100vh; width: 100%; justify-content: center; align-items: center; + background-image: url("/images/background.jpg"); + background-size: cover; + background-position: center; + + .backimage { + filter: blur(8px); + -webkit-filter: blur(8px); + } .content { display: flex; flex-direction: column; @@ -29,7 +38,7 @@ export default styled.main` } } .profile { - heigth: 250px; + height: 250px; width: 250px; img { max-height: 100%; @@ -41,4 +50,13 @@ export default styled.main` font-size: 1.5rem; font-weight: 600; } + .social-buttons { + background: rgb(64, 63, 79); + background: linear-gradient( + 90deg, + rgba(64, 63, 79, 1) 0%, + rgba(92, 84, 90, 1) 43% + ); + border-radius: 12px; + } `; diff --git a/components/nav.jsx b/components/nav.jsx index bcd10fb..b4be72f 100644 --- a/components/nav.jsx +++ b/components/nav.jsx @@ -1,23 +1,51 @@ import React from "react"; import NavStyle from "./nav.style"; import Link from "next/link"; +import { useLanyard } from "react-use-lanyard"; const LINKS = [ { title: "Skills", href: "/skills", }, + { + title: "Resume", + href: "/resume", + }, + { + title: "Mail Me", + href: "mailto:me@bravo68web.me", + }, ]; function Nav() { + const { loading, status /*, websocket */ } = useLanyard({ + userId: "457039372009865226", + socket: true, + }); return ( - -

echo "Bravo"

+ +
+

echo "Bravo"

+
+
+
+
+
{LINKS.map(({ title, href }, index) => (
- {title} + {title} |
))}
diff --git a/components/nav.style.js b/components/nav.style.js index 4e54318..99e421e 100644 --- a/components/nav.style.js +++ b/components/nav.style.js @@ -8,6 +8,35 @@ export default styled.nav` left: 0; width: 100vw; display: flex; + font-size: 1.5em; align-items: center; justify-content: space-between; + .title { + display: flex; + } + .links { + display: flex; + .link { + /* padding: 20px; */ + margin-left: 10px; + } + } + .indicator { + .circle { + height: 10px; + width: 10px; + border-radius: 100%; + + margin-top: 8px; + margin-left: 5px; + /* margin-right: auto; + flex: start; */ + } + .green { + background-color: green; + } + .red { + background-color: red; + } + } `; diff --git a/components/resume.jsx b/components/resume.jsx index d863e35..49ec350 100644 --- a/components/resume.jsx +++ b/components/resume.jsx @@ -1,22 +1,28 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useState, useRef } from "react"; import { ResumeStyle } from "./resume.style"; -import { Document, Page } from "react-pdf/dist/esm/entry.webpack5"; function Resume() { - const [resume, setResume] = useState({}); + const viewer = useRef(null); + useEffect(() => { - // axios.get("").then((res) => { - // setResume(res.data); - // }); + import("@pdftron/webviewer").then(() => { + WebViewer( + { + path: ".", + mobileRedirect: true, + initialDoc: + "https://raw.githubusercontent.com/BRAVO68WEB/certificates/master/Jyotirmoy's%20Resume.pdf", + }, + viewer.current + ).then((instance) => { + const { docViewer } = instance; + // you can now call WebViewer APIs here... + }); + }); }, []); - // console.log(Document); return ( -
- - - -
+
); } diff --git a/components/resume.style.jsx b/components/resume.style.jsx index d4bd67d..e27f207 100644 --- a/components/resume.style.jsx +++ b/components/resume.style.jsx @@ -1,3 +1,5 @@ import styled from "styled-components"; -export const ResumeStyle = styled.div``; +export const ResumeStyle = styled.div` + padding: 10%; +`; diff --git a/package.json b/package.json index 816419b..3d1a925 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "postinstall": "node tools/copy-webviewer-files.js" }, "dependencies": { "@emotion/react": "^11.7.1", diff --git a/pages/art.js b/pages/art.js new file mode 100644 index 0000000..545d060 --- /dev/null +++ b/pages/art.js @@ -0,0 +1,41 @@ +import Head from "next/head"; +import Nav from "components/nav"; +import { useEffect, useRef } from "react"; +import Resume from "components/Art"; +import Footer from "components/footer"; + +export default function Home() { + return ( +
+ + + Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer + + + + + + + + + + + +
+ ); +} diff --git a/pages/contact.js b/pages/contact.js new file mode 100644 index 0000000..f7a3263 --- /dev/null +++ b/pages/contact.js @@ -0,0 +1,41 @@ +import Head from "next/head"; +import Nav from "components/nav"; +import { useEffect, useRef } from "react"; +import Resume from "components/contact"; +import Footer from "components/footer"; + +export default function Home() { + return ( +
+ + + Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer + + + + + + + + + + + +
+ ); +} diff --git a/pages/index.js b/pages/index.js index 7663ff0..a43ad46 100644 --- a/pages/index.js +++ b/pages/index.js @@ -35,7 +35,7 @@ export default function Home() {
); } diff --git a/pages/resume.js b/pages/resume.js index 366cff7..d11c075 100644 --- a/pages/resume.js +++ b/pages/resume.js @@ -1,5 +1,6 @@ import Head from "next/head"; import Nav from "components/nav"; +import { useEffect, useRef } from "react"; import Resume from "components/resume"; import Footer from "components/footer"; diff --git a/public/images/art/Final_best.png b/public/images/art/Final_best.png new file mode 100644 index 0000000..5e5e813 Binary files /dev/null and b/public/images/art/Final_best.png differ diff --git a/public/images/art/H12M27S20.smoothed_careful.png b/public/images/art/H12M27S20.smoothed_careful.png new file mode 100644 index 0000000..47ccd27 Binary files /dev/null and b/public/images/art/H12M27S20.smoothed_careful.png differ diff --git a/public/images/art/karyl-2 final 3b.png b/public/images/art/karyl-2 final 3b.png new file mode 100644 index 0000000..acddb07 Binary files /dev/null and b/public/images/art/karyl-2 final 3b.png differ diff --git a/public/images/art/karyl-2 final.png b/public/images/art/karyl-2 final.png new file mode 100644 index 0000000..79f34e7 Binary files /dev/null and b/public/images/art/karyl-2 final.png differ diff --git a/public/images/background.jpg b/public/images/background.jpg new file mode 100644 index 0000000..49257b2 Binary files /dev/null and b/public/images/background.jpg differ diff --git a/styles/globals.css b/styles/globals.css index 344c276..084e707 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -1,27 +1,28 @@ -@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@200;300;400;500;600;700;800;900&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@200;300;400;500;600;700;800;900&display=swap"); -:root{ - --color1:#11052C; - --color2:#3D087B; - --color3:#F43B86; - --color4:#FFE459; - --font:'Source Code Pro', monospace; +:root { + --color1: #11052c; + --color2: #3d087b; + --color3: #f43b86; + --color4: #ffe459; + --font: "Source Code Pro", monospace; } -*{ - margin:0; - padding:0; +* { + margin: 0; + padding: 0; } html, body { + overflow-x: hidden; background: var(--color2); padding: 0; margin: 0; - font-family: var(--font), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, - Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; - height:100vh; - width:100vw; + font-family: var(--font), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, + Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; + height: 100vh; + width: 100vw; /* color:var(--color3) */ - color:#fff; + color: #fff; } a { color: inherit; diff --git a/tools/copy-webviewer-files.js b/tools/copy-webviewer-files.js new file mode 100644 index 0000000..5f720da --- /dev/null +++ b/tools/copy-webviewer-files.js @@ -0,0 +1,15 @@ +const fs = require("fs-extra"); + +const copyFiles = async () => { + try { + await fs.copy( + "./node_modules/@pdftron/webviewer/public", + "./public/webviewer/lib" + ); + console.log("WebViewer files copied over successfully"); + } catch (err) { + console.error(err); + } +}; + +copyFiles();