Fixed anded some cringe stuff

This commit is contained in:
Jyotirmoy Bandyopadhayaya 2022-04-14 02:07:06 +05:30
parent 8a72520df5
commit 6c14b74ed0
23 changed files with 1789 additions and 29 deletions

13
.babelrc Normal file
View File

@ -0,0 +1,13 @@
{
"presets": ["next/babel"],
"plugins": [
[
"styled-components",
{
"ssr": true,
"displayName": true,
"preprocess": false
}
]
]
}

29
components/about.jsx Normal file
View File

@ -0,0 +1,29 @@
import { name, LanguagesKnown, description1, description2 } from "config";
import { AboutStyle } from "./about.style";
function about() {
// console.log(LanguagesKnown);
return (
<AboutStyle>
<div className="default">
<div className="content">
<p>{description1}</p>
</div>
<div className="lang-map">
{LanguagesKnown.map((lang) => {
return (
<div className="lang-map-element" key={lang}>
{lang}
</div>
);
})}
</div>
<div className="content-2">
<p>{description2}</p>
</div>
</div>
</AboutStyle>
);
}
export default about;

View File

@ -0,0 +1,52 @@
import styled from "styled-components";
export const AboutStyle = styled.div`
background-color: var(--color1);
.default {
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
padding-top: 8em;
padding-bottom: 8em;
/* overflow-y: auto; */
}
.content {
margin-top: 1em;
margin-bottom: 1em;
margin-left: 1.3em;
margin-right: 1.3em;
font-weight: bold;
font-size: 1.3em;
color: var(--color3);
}
.content-2 {
margin-top: 1em;
margin-bottom: 1em;
margin-left: 1.3em;
margin-right: 1.3em;
font-weight: bold;
font-size: 1.3em;
color: var(--color4);
}
.lang-map {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-left: 1.7em;
margin-right: 1.7em;
align-items: center;
}
.lang-map-element {
padding: 5px;
border-radius: 20px;
margin: 2px;
/* background-color: #${Math.random().toString(16).substring(2, 6)}; */
background-color: #eeb90ac2;
font-weight: bold;
font-size: 1.1em;
color: #f5f5f5;
flex: 0 1 20%;
}
`;

View File

@ -2,7 +2,7 @@ import React from "react";
import ArtCardStyle from "./artCard.style";
import ArtModel from "./artModal";
function SkillCard({ name, description, image, onClick }) {
function SkillCard({ name, description, image, type, onClick }) {
const [open, setOpen] = React.useState(false);
const handleClose = () => {
setOpen(false);
@ -24,6 +24,7 @@ function SkillCard({ name, description, image, onClick }) {
<b>{name}</b>
</div>
<div className="content">{description}</div>
<div className="type">#{type}</div>
</div>
</ArtCardStyle>
<ArtModel open={open} onClose={handleClose}>

View File

@ -8,7 +8,9 @@ export default styled.div`
background-color: #8609d4;
border-radius: 5px;
margin: 5px;
.type {
color: var(--color1);
}
.card-logo {
display: flex;
/* width: 100%; */

View File

@ -23,7 +23,7 @@ const LINKS = [
},
{
title: "Art / Projects",
href: "/art",
href: "/projects",
},
{
title: "Blog",

View File

@ -0,0 +1,98 @@
import { darkScrollbar } from "@mui/material";
import { useRef, useEffect } from "react";
const Cursor = () => {
const delay = 18;
const dot = useRef(null);
const dotOutline = useRef(null);
const cursorVisaible = useRef(true);
const cursorEnlarge = useRef(false);
const endX = useRef(window.innerWidth / 2);
const endY = useRef(window.innerHeight / 2);
const _x = useRef(0);
const _y = useRef(0);
const requestRef = useRef(null);
useEffect(() => {
document.addEventListener("mousedown", mouseOverEvent);
document.addEventListener("mouseup", mouseOutEvent);
document.addEventListener("mousemove", mouseMoveEvent);
document.addEventListener("mouseenter", mouseEnterEvent);
document.addEventListener("mouseleave", mouseLeaveEvent);
console.log("Cursor Mounted");
animateDotOutline();
return () => {
document.removeEventListener("mousedown", mouseOverEvent);
document.removeEventListener("mouseup", mouseOutEvent);
document.removeEventListener("mousemove", mouseMoveEvent);
document.removeEventListener("mouseenter", mouseEnterEvent);
document.removeEventListener("mouseleave", mouseLeaveEvent);
cancelAnimationFrame(requestRef.current);
console.log("Cursor Unmounted");
};
});
const toggleCursorVisaible = () => {
if (cursorVisaible.current) {
dot.current.style.opacity = 1;
dotOutline.current.style.opacity = 1;
} else {
dot.current.style.opacity = 0;
dotOutline.current.style.opacity = 0;
}
};
const toggleCursorSize = () => {
if (cursorEnlarge.current) {
dot.current.style.transform = "transform(-50%, -50%) scale(0.75)";
dotOutline.current.style.transform = "transform(-50%, -50%) scale(1.50)";
} else {
dot.current.style.transform = "transform(-50%, -50%) scale(1)";
dotOutline.current.style.transform = "transform(-50%, -50%) scale(1)";
}
};
const mouseOverEvent = () => {
cursorVisaible.current = true;
toggleCursorSize();
};
const mouseOutEvent = () => {
cursorVisaible.current = false;
toggleCursorSize();
};
const mouseEnterEvent = (e) => {
cursorVisaible.current = true;
toggleCursorVisaible();
};
const mouseLeaveEvent = () => {
cursorVisaible.current = false;
toggleCursorVisaible();
};
const mouseMoveEvent = (e) => {
cursorVisaible.current = true;
toggleCursorVisaible();
endX.current = e.pageX;
endY.current = e.pageY;
dot.current.style.top = endY.current + "px";
dot.current.style.left = endX.current + "px";
};
const animateDotOutline = () => {
_x.current += (endX.current - _x.current) / delay;
_y.current += (endY.current - _y.current) / delay;
dotOutline.current.style.top = _y.current + "px";
dotOutline.current.style.left = _x.current + "px";
};
return (
<>
<div ref={dotOutline} className="cursor-dot-outline"></div>
<div ref={dot} className="cursor-dot"></div>
</>
);
};
export default Cursor;

View File

@ -6,6 +6,7 @@ import { APISDK } from "handlers/sdk";
import Box from "@mui/material/Box";
import LinearProgress from "@mui/material/LinearProgress";
// import "mainboard.css";
import Cursor, { mouseOverEvent, mouseOutEvent } from "./providers/cursor";
// Skill Card templates
import GitHubSkillCard from "./skillComponents/github_user";
@ -65,6 +66,7 @@ function Skills() {
return (
<div>
<Cursor />
{!loading && (
<SkillsStyle>
<div className="mainboard__container">
@ -77,6 +79,8 @@ function Skills() {
following={skills?.gh_user?.data?.following}
public_gists={skills?.gh_user?.data?.public_gists}
created_at={skills?.gh_user?.data?.created_at}
mouseOverEvent={mouseOverEvent}
mouseOutEvent={mouseOutEvent}
/>
<OsuUserSkillCard
title={"Osu! Player Stats"}

0
components/status.jsx Normal file
View File

View File

View File

@ -11,9 +11,32 @@ export const resume_url = "";
export const facebook_url = "https://www.facebook.com/Bravo68Web/";
export const discord_id = "457039372009865226";
export const discord_profile = "";
export const description1 =
"I am Jyotirmoy Bandyopadhayaya, AKA Bravo68web, 19, a student developer from India with passion in API and microservices development. I have expertice in DevOps and Full Stack development. I am a self taught developer and I am always looking for new challenges to learn and grow.";
export const description2 =
"I love Cats 😻 and I love to code and I love to play FPS shooting games.";
export const LanguagesKnown = [
"NodeJS",
"Python",
"TypeScript",
"C++",
"C",
"SQL",
"Rust",
"Go",
"Bash",
"Java",
"Docker",
"AWS",
"GCP",
"Cloud Computing",
"Git",
"Linux",
];
export const projects = [
{
name: "URL Minify",
type: "project",
description:
"Open Source | URL Minify is a simple URL shortener service that allows you to shorten any URL and redirect to the original URL.",
image:
@ -21,27 +44,32 @@ export const projects = [
},
{
name: "API",
type: "project",
description:
"Bravo68web API solely devloped by me to provide a data on and needed by me on daily basis.",
image: "https://api.b68dev.xyz/logo",
},
{
name: "Karyl #1",
type: "art",
description: "Drawn Princess Connect : Re-Dive charecter #1",
image: "/images/art/karyl-2-final-3b.png",
},
{
name: "Karyl #2",
type: "art",
description: "Drawn Princess Connect : Re-Dive charecter #2",
image: "/images/art/karyl-2-final.png",
},
{
name: "Ayaka",
type: "art",
description: "Drawing of Ayaka from the Genshin Impact game",
image: "/images/art/H12M27S20.smoothed_careful.png",
},
{
name: "Kirby",
type: "art",
description: "A Student, Full Stack and DevOps Platform Developer",
image: "/images/art/Final_best.png",
},

View File

@ -27,16 +27,21 @@
"@mui/material": "^5.3.0",
"@pdftron/webviewer": "^8.3.3",
"axios": "^0.26.1",
"core-js": "^3.21.1",
"cursor-react": "^1.0.3",
"date-format-parse": "^0.2.7",
"fs-extra": "^10.0.1",
"next": "^12.1.4",
"next-connect": "^0.12.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-use-lanyard": "^0.1.1",
"sitemap": "^7.1.1",
"styled-components": "^5.3.3",
"use-last-fm": "https://github.com/BRAVO68WEB/use-last-fm"
},
"devDependencies": {
"babel-plugin-styled-components": "^2.0.7",
"eslint": "^7.32.0",
"eslint-config-next": "12.0.4"
}

42
pages/about.js Normal file
View File

@ -0,0 +1,42 @@
import Head from "next/head";
import Nav from "components/nav";
import About from "components/about";
import Footer from "components/footer";
export default function Home() {
return (
<div>
<Head>
<title>
About | Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and
DevOps Engineer
</title>
<meta
name="description"
content="Jyotirmoy Bandyopadhayaya's Website | A Student, Full Stack and DevOps Platform Developer | Jyotirmoy Bandyopadhayaya's Tech Stack"
/>
<meta
name="keywords"
content="bravo, bravo68web, Jyotirmoy, Bandyopadhayaya, dev, web, Full Stack Developer, DevOps, gcp, linux, server, api, rest, lpu"
/>
<meta name="language" content="EN" />
<meta name="author" content="Jyotirmoy Bandyopadhayaya | Bravo68web" />
<meta
name="publisher"
content="Jyotirmoy Bandyopadhayaya | Bravo68web"
/>
<link rel="icon" href="/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
</Head>
<Nav />
<About />
{/* <Footer /> */}
</div>
);
}

26
pages/api/sitemap.js Normal file
View File

@ -0,0 +1,26 @@
import nc from "next-connect";
const handler = nc();
export default handler.get(async (req, res) => {
// Get the all Blog posts
const { createWriteStream } = require("fs");
const { SitemapStream } = require("sitemap");
const sitemap = new SitemapStream({
hostname: "https://itsmebravo.dev",
});
const writeStream = createWriteStream("./public/sitemap.xml");
sitemap.pipe(writeStream);
// Writing static pages to sitemap
sitemap.write({ url: "/", changefreq: "daily", priority: 1 });
sitemap.write({ url: "/art/", changefreq: "daily", priority: 0.8 });
sitemap.write({ url: "/stats/", changefreq: "daily", priority: 0.8 });
sitemap.write({ url: "/contact/", changefreq: "daily", priority: 0.8 });
sitemap.write({ url: "/resume/", changefreq: "daily", priority: 0.8 });
sitemap.end();
// Send a message after process done
res.status(200).json({ message: "Done" });
});

View File

@ -1,6 +1,5 @@
import Head from "next/head";
import Nav from "components/nav";
import { useEffect, useRef } from "react";
import Contact from "components/contact";
import Footer from "components/footer";
@ -9,7 +8,8 @@ export default function Home() {
<div>
<Head>
<title>
Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer
Contact | Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and
DevOps Engineer
</title>
<meta
name="description"

View File

@ -8,7 +8,8 @@ export default function Home() {
<div>
<Head>
<title>
Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer
Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and DevOps
Engineer
</title>
<meta
name="description"

View File

@ -7,7 +7,8 @@ export default function Home() {
<div>
<Head>
<title>
Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer
Projects | Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and
DevOps Engineer
</title>
<meta
name="description"

View File

@ -9,7 +9,8 @@ export default function Home() {
<div>
<Head>
<title>
Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer
Resume | Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and
DevOps Engineer
</title>
<meta
name="description"

View File

@ -8,7 +8,8 @@ export default function Home() {
<div>
<Head>
<title>
Jyotirmoy Bandyopadhayaya | Full Stack and DevOps Platform Developer
Skills | Jyotirmoy Bandyopadhayaya | Full Stack Web Developer and
DevOps Engineer
</title>
<meta
name="description"
@ -24,7 +25,7 @@ export default function Home() {
name="publisher"
content="Jyotirmoy Bandyopadhayaya | Bravo68web"
/>
<link rel="icon" href="/favicon.png" />
<link rel="icon" href="/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link

0
pages/status.js Normal file
View File

1
public/sitemap.xml Normal file
View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://itsmebravo.dev/</loc><changefreq>daily</changefreq><priority>1.0</priority></url><url><loc>https://itsmebravo.dev/art/</loc><changefreq>daily</changefreq><priority>0.8</priority></url><url><loc>https://itsmebravo.dev/stats/</loc><changefreq>daily</changefreq><priority>0.8</priority></url><url><loc>https://itsmebravo.dev/contact/</loc><changefreq>daily</changefreq><priority>0.8</priority></url><url><loc>https://itsmebravo.dev/resume/</loc><changefreq>daily</changefreq><priority>0.8</priority></url></urlset>

View File

@ -13,6 +13,10 @@
--color9: #f5a80f;
--color10: #0ffaac;
--font: "Source Code Pro", monospace;
--color-cursor: 220, 90, 90;
--cursor-outline-shade: 0.3;
--cursor-size: 10px;
--cursor-outline-size: 12px;
}
* {
margin: 0;
@ -39,3 +43,15 @@ a {
* {
box-sizing: border-box;
}
#cursor-dot {
width: var(--cursor-size);
height: var(--cursor-size);
background-color: rgba(var(--color-cursor), 1);
}
#cursor-dot-outline {
width: var(--cursor-outline-size);
height: var(--cursor-outline-size);
background-color: rgba(var(--color-cursor), var(--cursor-outline-shade));
}

1477
yarn.lock

File diff suppressed because it is too large Load Diff