Skip to content

Commit

Permalink
git is link s
Browse files Browse the repository at this point in the history
  • Loading branch information
zobkazi committed Jun 29, 2024
1 parent 4026f55 commit 9af21da
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 57 deletions.
69 changes: 35 additions & 34 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Head from "next/head";
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
Expand Down Expand Up @@ -25,47 +26,47 @@ export default function RootLayout({
}>) {
return (
<html lang="en">
<meta charSet="UTF-8" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="apple-touch-icon"
sizes="180x180"
href={metaDataLinks.faviconLinkAppleTouchIcon}
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href={metaDataLinks.faviconLink32x32}
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href={metaDataLinks.faviconLink16x16}
/>
<link rel="manifest" href="/site.webmanifest"></link>
<link
rel="mask-icon"
href={metaDataLinks.androidChromeLink512x512}
color="#5bbad5"
/>
{/* keywords */}
<meta name="keywords" content={keywords.join(", ")} />
{/* social links */}

<meta name="twitter:card" content="zobaidulkazi" />
<Head>
<meta charSet="UTF-8" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="apple-touch-icon"
sizes="180x180"
href={metaDataLinks.faviconLinkAppleTouchIcon}
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href={metaDataLinks.faviconLink32x32}
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href={metaDataLinks.faviconLink16x16}
/>
<link rel="manifest" href="/site.webmanifest"></link>
<link
rel="mask-icon"
href={metaDataLinks.androidChromeLink512x512}
color="#5bbad5"
/>
{/* keywords */}
<meta name="keywords" content={keywords.join(", ")} />
{/* social links */}
<meta name="twitter:card" content="zobaidulkazi" />
</Head>
<body className={inter.className}>
<div className=" ">
<div>
<Sidebar />
<main className="ml-0 md:ml-64 transition-all duration-300 relative">
<div className="fixed top-4 right-4 z-50">
<DarkModeToggle />
</div>
<ScrollToTop />
<div className="">
{children}</div>
<div>{children}</div>
</main>
</div>
</body>
Expand Down
6 changes: 3 additions & 3 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import Home from "@/components/home/Home";
import Link from "next/link";
import React from "react";

const HomePage: React.FC = () => {
return (
<div>
<>
<Home />

</div>
</>
);
};

Expand Down
78 changes: 63 additions & 15 deletions src/components/about/AboutMe.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,86 @@
import React from 'react';
import Image from 'next/image';
import GradientBG from '../ui-utils/GradientBG';
import React from "react";
import Image from "next/image";
import GradientBG from "@/components/";
import { GetStaticProps } from "next";

// Define the types for your data
interface AboutMeData {
imageSrc: string;
name: string;
title: string;
description: string[];
}

interface AboutMeProps {
data: AboutMeData;
}

const AboutMe: React.FC<AboutMeProps> = ({ data }) => {
if (!data) {
return <div>Error loading data</div>;
}

const AboutMe = () => {
return (
<div className=" bg-gray-100 dark:bg-gray-800 flex justify-center items-center">
<div className="bg-gray-100 dark:bg-gray-800 flex justify-center items-center">
<GradientBG />
<div className="lg:w-[80%] sm:w-[80%] xs:w-[90%] mx-auto flex flex-col lg:flex-row gap-8 items-center">
{/* Image Section */}
<div className="w-full lg:w-1/3 flex justify-center lg:justify-end">
<Image
width={300}
height={300}
src="https://avatars.githubusercontent.com/u/105772384?v=4"
src={data.imageSrc}
alt="About Me"
className="w-32 h-32 lg:w-48 lg:h-48 object-cover rounded-full shadow-xl border-green-400 border-4"
/>
</div>
{/* Article Section */}
<div className="w-full lg:w-3/1 flex flex-col gap-4 text-dark dark:text-white p-4 rounded-lg border border-green-300 shadow-xl shadow-green-400/30">
<h5 className="text-sm text-green-500 font-semibold">About Me</h5>
<h2 className="text-3xl font-semibold uppercase font-serif">Samuel Abera</h2>
<h5 className="text-sm text-green-500 font-semibold">{data.title}</h5>
<h2 className="text-3xl font-semibold uppercase font-serif">
{data.name}
</h2>
<hr className="w-[50%] h-1 rounded-full border-t-green-500 bg-green-500" />
<p className="text-sm">
Hello! I am Samuel Abera, a versatile developer specializing in bridging the gap between front-end design and back-end functionality. My expertise lies in creating seamless user experiences by transforming lines of code into interactive and intuitive digital solutions. I excel in solving complex problems and collaborating effectively with diverse teams to deliver innovative solutions.
</p>
<p className="text-sm">
I thrive on embracing the latest technologies to build efficient and scalable applications. Passionate about coding and committed to excellence, I am dedicated to crafting the future of digital experiences. With a strong foundation in Node.js, JavaScript, and TypeScript, I consistently push the boundaries of what’s possible in web development, ensuring that each project not only meets but exceeds user expectations.
</p>
{data.description.map((paragraph, index) => (
<p key={index} className="text-sm">
{paragraph}
</p>
))}
</div>
</div>

</div>
);
};

export default AboutMe;

export const getStaticProps: GetStaticProps = async () => {
const fs = require("fs");
const path = require("path");
const filePath = path.join(process.cwd(), "", "");

// Check if the file exists
if (!fs.existsSync(filePath)) {
return {
props: {
data: null,
},
};
}

const jsonData = fs.readFileSync(filePath, "utf8");
let data;

try {
data = JSON.parse(jsonData);
} catch (error) {
console.error("Error parsing JSON:", error);
data = null;
}

return {
props: {
data: data ? data.aboutMe : null,
},
};
};
11 changes: 6 additions & 5 deletions src/components/home/Home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@ const description =
const buttonText = "Get Started";
const forgetText = "How can I help as a full-stack developer ?";

const HomePage: React.FC = () => {
const Home: React.FC = () => {
return (
<div className="min-h-screen bg-gray-100 dark:bg-gray-800 flex flex-col items-center justify-center text-center px-4 py-20">
<GradientBG />
<Link
target="_blank"
href=""
href="/"
className="border shadow-md border-green-300 dark:border-green-300 rounded-lg py-2 px-4 text-black dark:text-white text-sm mb-5 transition duration-300 ease-in-out hover:text-gray-500 dark:hover:text-gray-700"
>
{forgetText}
Expand All @@ -32,13 +31,15 @@ const HomePage: React.FC = () => {
</h2>

<Link
target="_blank"
className="bg-green-600 dark:bg-green-400 rounded-xl text-white dark:text-black font-medium px-4 py-3 sm:mt-10 mt-8 hover:bg-green-600 dark:hover:bg-green-400 transition"
href="https://calendly.com/zobaidulkazi/30min"
>
{buttonText}
</Link>




<Footer />

<Link className=" bg-gray-100 dark:bg-gray-800" href="https://wakatime.com/@f22f5f67-c272-4052-bc4f-b9ee26dfabff" target="_blank">
Expand All @@ -50,4 +51,4 @@ const HomePage: React.FC = () => {
);
};

export default HomePage;
export default Home;
11 changes: 11 additions & 0 deletions src/context/AboutMeData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"aboutMe": {
"imageSrc": "https://avatars.githubusercontent.com/u/105772384?v=4",
"name": "Samuel Abera",
"title": "About Me",
"description": [
"Hello! I am Samuel Abera, a versatile developer specializing in bridging the gap between front-end design and back-end functionality. My expertise lies in creating seamless user experiences by transforming lines of code into interactive and intuitive digital solutions. I excel in solving complex problems and collaborating effectively with diverse teams to deliver innovative solutions.",
"I thrive on embracing the latest technologies to build efficient and scalable applications. Passionate about coding and committed to excellence, I am dedicated to crafting the future of digital experiences. With a strong foundation in Node.js, JavaScript, and TypeScript, I consistently push the boundaries of what’s possible in web development, ensuring that each project not only meets but exceeds user expectations."
]
}
}

0 comments on commit 9af21da

Please sign in to comment.