Releasing v1.2.0

This commit is contained in:
Jyotirmoy Bandyopadhayaya 2022-05-02 17:46:18 +05:30
parent 4cfe4b6cfa
commit 8524949cbc
18 changed files with 2532 additions and 1087 deletions

View File

@ -13,12 +13,12 @@ name: "CodeQL"
on:
push:
branches: [ main ]
branches: [main]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
branches: [main]
schedule:
- cron: '15 19 * * 5'
- cron: "15 19 * * 5"
jobs:
analyze:
@ -32,39 +32,39 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
language: ["javascript"]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

6
.prettierignore Normal file
View File

@ -0,0 +1,6 @@
build
coverage
.vercel
.next
node_modules
public/

37
components/extras.js Normal file
View File

@ -0,0 +1,37 @@
import {} from "config";
import { ExtraStyles } from "./extras.style";
import { extra } from "config";
function extras() {
return (
<ExtraStyles>
<h1>Extras</h1>
<div className="default">
{extra.map((content, index) => {
return (
<>
<div className="content">
<div className="content-description">
<img src={content.image} />
</div>
<div className="content-title">
<h1>
<a
href={content.url}
target="_blank"
rel="noopener noreferrer"
>
{content.name}
</a>
</h1>
</div>
</div>
</>
);
})}
</div>
</ExtraStyles>
);
}
export default extras;

View File

@ -0,0 +1,72 @@
import styled from "styled-components";
// import SendIcon from "@mui/icons-material/Send";
export const ExtraStyles = styled.div`
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding-top: 15vh;
background-image: url("images/background2.jpg");
background-size: cover;
background-position: center;
background-attachment: fixed;
background-repeat: no-repeat;
overflow-y: scroll !important;
height: 100vh;
.default {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
/* height: 100vh; */
padding-bottom: 10em;
.content {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding-bottom: 2em;
&:hover {
filter: contrast(200%);
-webkit-transform: translateX(-5px) translateY(-5px);
transform: translateX(-5px) translateY(-5px);
transition: 1s ease;
}
.content-description {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.content-description img {
width: 100px;
}
.content-title {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
h1 {
font-size: 1.5em;
font-weight: bold;
color: #fff;
text-align: center;
margin: 0;
padding: 0;
a {
color: #fff;
text-decoration: none;
&:hover {
color: #b41ee6;
}
}
}
}
}
}
`;

View File

@ -26,7 +26,7 @@ const LINKS = [
href: "/contact",
},
{
title: "Art / Projects",
title: "Art/Projects",
href: "/projects",
},
{
@ -34,8 +34,8 @@ const LINKS = [
href: "https://blog.bravo68web.me",
},
{
title: "Mail Me",
href: "mailto:me@bravo68web.me",
title: "Extras",
href: "/extras",
},
];
@ -77,7 +77,7 @@ function Nav() {
<div className="links">
{LINKS.map(({ title, href }, index) => (
<div key={index} className="link">
<Link href={href}>{title}</Link> |
<Link href={href}>{title}</Link>
</div>
))}
</div>

View File

@ -25,6 +25,11 @@ export default styled.nav`
.link {
/* padding: 20px; */
margin-left: 10px;
color: #fff;
&:hover {
color: #111111;
background-color: #6ffc03;
}
}
@media (max-width: 900px) {
display: none;

View File

@ -1,98 +1,66 @@
import { darkScrollbar } from "@mui/material";
import { useRef, useEffect } from "react";
export function loadCursor(ball) {
let x = window.innerWidth / 2;
let y = window.innerHeight / 2;
const Cursor = () => {
const delay = 18;
const dot = useRef(null);
const dotOutline = useRef(null);
const cursorVisaible = useRef(true);
const cursorEnlarge = useRef(false);
let ballX = x;
let ballY = y;
const endX = useRef(window.innerWidth / 2);
const endY = useRef(window.innerHeight / 2);
const _x = useRef(0);
const _y = useRef(0);
let hideTimeout = NodeJS.Timeout ? null : null;
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();
function drawBall() {
ballX += (x - ballX) * 0.1 - 1;
ballY += (y - ballY) * 0.1 - 1;
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;
ball.style.top = `${ballY - window.scrollY}px`;
ball.style.left = `${ballX}px`;
}
function loop() {
drawBall();
requestAnimationFrame(loop);
}
loop();
function touch(event) {
x = event.touches[0].pageX;
y = event.touches[0].pageY;
}
function mousemove(event) {
ball.style.opacity = "1";
if (hideTimeout) {
clearTimeout(hideTimeout);
}
};
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();
};
x = event.pageX;
y = event.pageY;
const mouseOutEvent = () => {
cursorVisaible.current = false;
toggleCursorSize();
};
hideTimeout = setTimeout(() => {
ball.style.opacity = "0";
}, 300);
}
const mouseEnterEvent = (e) => {
cursorVisaible.current = true;
toggleCursorVisaible();
};
function mousedown() {
ball.style.transform = "scale(2)";
}
const mouseLeaveEvent = () => {
cursorVisaible.current = false;
toggleCursorVisaible();
};
const mouseMoveEvent = (e) => {
cursorVisaible.current = true;
toggleCursorVisaible();
endX.current = e.pageX;
endY.current = e.pageY;
function mouseup() {
ball.style.transform = "scale(1)";
}
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;
window.addEventListener("touchstart", touch);
window.addEventListener("touchmove", touch);
window.addEventListener("mousemove", mousemove);
window.addEventListener("mousedown", mousedown);
window.addEventListener("mouseup", mouseup);
dotOutline.current.style.top = _y.current + "px";
dotOutline.current.style.left = _x.current + "px";
return () => {
window.removeEventListener("touchstart", touch);
window.removeEventListener("touchmove", touch);
window.removeEventListener("mousemove", mousemove);
window.removeEventListener("mousedown", mousedown);
window.removeEventListener("mouseup", mouseup);
};
return (
<>
<div ref={dotOutline} className="cursor-dot-outline"></div>
<div ref={dot} className="cursor-dot"></div>
</>
);
};
export default Cursor;
}

View File

@ -86,6 +86,39 @@ export const arts = [
},
];
export const extra = [
{
name: "PraiveBin",
image: "/images/projects/privatebin.jpg",
url: "https://paste.itsmebravo.dev/",
},
{
name: "ImageSafe",
image: "https://safe.b68dev.xyz/images/logo_smol.png",
url: "https://safe.b68dev.xyz",
},
{
name: "Bravo's Git Hosting",
image: "https://gitea.io/images/gitea.png",
url: "https://git.itsmebravo.dev/",
},
{
name: "Bravo's Radio Player",
image: "/images/projects/radio-cast.png",
url: "https://radio.b68dev.xyz/",
},
{
name: "Bravo's IRC",
image: "/images/projects/irc.png",
url: "https://irc.b68dev.xyz/",
},
{
name: "IP Tracker",
image: "/images/projects/GOIPTracker.png",
url: "https://ip.b68dev.xyz",
},
];
var project = [
{
name: "URL Minify",

View File

@ -1,5 +1,5 @@
{
"compilerOptions": {
"baseUrl": "./"
}
}
"compilerOptions": {
"baseUrl": "./"
}
}

View File

@ -2,7 +2,7 @@
"name": "bravo68web-portfolio",
"private": true,
"description": "My NextJS Portfolio",
"version": "1.1.0",
"version": "1.2.0",
"license": "CC-BY-ND-4.0",
"author": {
"name": "Bravo68Web",
@ -18,7 +18,8 @@
"build": "next build",
"start": "next start",
"lint": "next lint",
"postinstall": "node tools/copy-webviewer-files.js"
"postinstall": "node tools/copy-webviewer-files.js",
"prettier": "prettier --write ."
},
"dependencies": {
"@emotion/react": "^11.7.1",
@ -43,6 +44,7 @@
"devDependencies": {
"babel-plugin-styled-components": "^2.0.7",
"eslint": "^7.32.0",
"eslint-config-next": "12.0.4"
"eslint-config-next": "12.0.4",
"prettier": "^2.6.2"
}
}

View File

@ -1,7 +1,8 @@
import "../styles/globals.css";
// import { loadCursor } from "../components/providers/cursor";
function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />;
function MyPortfolio({ Component, pageProps }) {
return <Component {...pageProps} />;
}
export default MyApp;
export default MyPortfolio;

42
pages/extras.js Normal file
View File

@ -0,0 +1,42 @@
import Head from "next/head";
import Nav from "components/nav";
import Extras from "components/extras";
import Footer from "components/footer";
export default function Home() {
return (
<div>
<Head>
<title>
Extras | 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 />
<Extras />
{/* <Footer /> */}
</div>
);
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2989,6 +2989,11 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
prettier@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
pretty-format@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"