diff --git a/app/(root)/page.js b/app/(root)/page.js index ecc341a..848619d 100644 --- a/app/(root)/page.js +++ b/app/(root)/page.js @@ -9,6 +9,8 @@ import Link from "next/link"; import Button from "@/components/Button"; import Me from "../../public/img/me.jpg"; import MeAbout from "@/public/img/me2.jpg"; +import Setup from "@/public/img/setup.jpg"; +import ProjectAll from "@/public/img/projects-all.jpg"; import Hr from "@/components/Hr"; // icons import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -115,17 +117,15 @@ const MyPage = () => { delay: 0.7, type: "spring", }}> -
-
- Alvalens -
+
+ Alvalens
@@ -134,6 +134,7 @@ const MyPage = () => {
{ transition={{ delay: 0.5, type: "spring", - }} - className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0 "> + }}> {
{
{ transition={{ delay: 0.5, type: "spring", - }}> + }}> + Alvalens Setup +
{
-
+
+ Alvalens Setup +
+ + {children} +
+ + ); +} \ No newline at end of file diff --git a/app/about/page.js b/app/about/page.js index 1763d25..5f1e776 100644 --- a/app/about/page.js +++ b/app/about/page.js @@ -4,13 +4,12 @@ import Link from "next/link"; import { motion } from "framer-motion"; import Button from "@/components/Button"; import Image from "next/legacy/image"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faArrowRight } from "@fortawesome/free-solid-svg-icons"; // images import Me1 from "@/public/img/me1.jpg"; import Me2 from "@/public/img/me2.jpg"; import Me3 from "@/public/img/me3.jpg"; +import Hr from "@/components/Hr"; export default function Page() { useEffect(() => { window.scrollTo(0, 0); @@ -35,15 +34,12 @@ export default function Page() { />
-
+

About Me

-
-
-
-
-

+


+

A brief introduction about me and my interest.

- {/*
-
-
-
-

Tech Stack

-
-
*/}
- -
- - - Get In Touch{" "} - - - -
); diff --git a/app/layout.js b/app/layout.js index e3e3d7b..1d83d8e 100644 --- a/app/layout.js +++ b/app/layout.js @@ -7,7 +7,7 @@ config.autoAddCss = false; import "./nprogress.css"; export const metadata = { - title: "Create Next App", + title: "Alvalens | Portofolio", description: "Generated by create next app", }; diff --git a/app/projects/[slug]/page.js b/app/projects/[slug]/page.js new file mode 100644 index 0000000..0a10e49 --- /dev/null +++ b/app/projects/[slug]/page.js @@ -0,0 +1,106 @@ +"use client"; +import { useState, useEffect } from "react"; +import jsonData from "../../../json/data.json"; +import Image from "next/image"; + +function Page({ params }) { + const [data, setData] = useState(null); + useEffect(() => { + const selectedData = jsonData.Projects.find( + (item) => item.slug === params.slug + ); + setData(selectedData); + }, [params.slug]); + + if (!data) { + return

Loading...

; + } + + return ( +
+
+
+
+
+

+ Project +

+

+ {data.title} +

+
+
+

+ Technology +

+

+ {data.tech.join(", ")} +

+
+
+

+ Year +

+

+ {data.year} +

+
+
+

+ Preview +

+

+ + {data.preview} + +

+
+
+

+ Source Code +

+

+ + {data.code} + +

+
+
+
+

+ Description +

+ {data.desc.map((desc, index) => ( +

+ {desc} +

+ ))} +
+
+
+ {/* images */} +
+
+ {data.images.map((image, index) => ( + {`Project + ))} +
+
+
+ ); +} + +export default Page; diff --git a/app/projects/layout.js b/app/projects/layout.js index 22adb89..f50b242 100644 --- a/app/projects/layout.js +++ b/app/projects/layout.js @@ -1,5 +1,9 @@ // generate layour with footer import Footer from "@/components/Footer"; + +export const metadata = { + title: "Alvalens | Projects", +}; export default function Layout({ children }) { return ( <> diff --git a/app/projects/page.js b/app/projects/page.js index 010cada..6c2e3c9 100644 --- a/app/projects/page.js +++ b/app/projects/page.js @@ -6,12 +6,15 @@ import Button from "@/components/Button"; import Image from "next/legacy/image"; // images -import Me1 from "@/public/img/me1.jpg"; -import Me2 from "@/public/img/me2.jpg"; -import Me3 from "@/public/img/me3.jpg"; +import ReactChat1 from "@/public/projects/react-chat.png"; +import ReactChat2 from "@/public/projects/react-chat2.png"; +import ReactChat3 from "@/public/projects/react-chat3.png"; +import ProjectAll from "@/public/img/projects-all.jpg"; + +import Hr from "@/components/Hr"; const projects = () => { - [{ title: "React Chat WebApp"}] + [{ title: "React Chat WebApp" }]; }; export default function Page() { @@ -28,16 +31,21 @@ export default function Page() { initial={{ scale: 1 }} animate={{ scale: 1.6 }} transition={{ duration: 1, ease: "circOut" }} - className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw]"> + className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0"> + Alvalens +
-
+

My Projects

-
-
-
-
+

List of my projects that I have done and currently working on. @@ -67,7 +75,7 @@ export default function Page() {

-
+
+ className="w-full h-full shadow-lg"> Alvalens
-
+
+ transition={{ delay: 0.3 }} + className="w-full h-full shadow-lg "> Alvalens
-
+
+ className="w-full h-full shadow-lg"> Alvalens +

{" "} +
+ + +
diff --git a/components/Button.js b/components/Button.js index efe6ae7..dc9b80e 100644 --- a/components/Button.js +++ b/components/Button.js @@ -1,7 +1,7 @@ const Button = ({ children, variation, ...props }) => (