2023-09-03 08:45:12 +07:00
|
|
|
"use client"
|
|
|
|
|
import { motion } from "framer-motion";
|
|
|
|
|
|
|
|
|
|
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
|
|
|
import { faGithub } from "@fortawesome/free-brands-svg-icons";
|
|
|
|
|
import { faArrowUpRightFromSquare } from "@fortawesome/free-solid-svg-icons";
|
2023-09-06 16:39:25 +07:00
|
|
|
import FixedButon from "@/components/FixedButton";
|
|
|
|
|
import { faChevronLeft } from "@fortawesome/free-solid-svg-icons";
|
2023-09-03 08:45:12 +07:00
|
|
|
const projects = [
|
2024-08-30 18:41:17 +07:00
|
|
|
{
|
|
|
|
|
year: "2024",
|
|
|
|
|
title: "Generative Trivia",
|
|
|
|
|
tech: "NextJS, Gemini AI, TailwindCSS, ShadcnUI, Firebase",
|
|
|
|
|
github: "https://github.com/Alvalens/generative-trivia",
|
|
|
|
|
preview: "https://generative-trivia.vercel.app/",
|
|
|
|
|
},
|
2024-08-31 19:05:33 +07:00
|
|
|
{
|
|
|
|
|
year: "2024",
|
|
|
|
|
title: "Saku Senyum",
|
|
|
|
|
tech: "NextJS, TypeScript, TailwindCSS, ShadcnUI, Prisma, MySQL",
|
|
|
|
|
},
|
2023-12-16 11:29:56 +07:00
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "LUDOang",
|
|
|
|
|
tech: "Python, Pygame, OpenGL",
|
|
|
|
|
github: "https://github.com/Alvalens/ludo-game",
|
2024-08-30 18:41:17 +07:00
|
|
|
preview:
|
|
|
|
|
"https://github.com/Alvalens/ludo-game/releases/tag/pre-release",
|
2023-12-16 11:29:56 +07:00
|
|
|
},
|
2023-09-05 21:39:08 +07:00
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "React Realtime Chat",
|
|
|
|
|
tech: "Javascript, React Js, Firebase, Daisy UI",
|
|
|
|
|
github: "https://github.com/Alvalens/react-realtime-chat",
|
|
|
|
|
preview: "https://react-chat-rouge.vercel.app",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "React Tools",
|
|
|
|
|
tech: "Javascript, React Js, TailwindCSS",
|
|
|
|
|
github: "https://github.com/Alvalens/react-tools",
|
|
|
|
|
preview: "react-tools-flax.vercel.app",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "Aleph Discord Bot",
|
|
|
|
|
tech: "Python, Serp API, Discord.py",
|
|
|
|
|
github: "https://github.com/Alvalens/aleph-discord-bot",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "LPTK CUP UM 2023",
|
|
|
|
|
tech: "PHP, Laravel, Bootstrap, MySQL, jQuery, DataTables",
|
|
|
|
|
github: "",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "NU INO Website",
|
|
|
|
|
tech: "PHP, Laravel, Livewire Bootstrap, MySQL, jQuery, DataTables",
|
|
|
|
|
github: "",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "Unmuh Jember Landing Page",
|
|
|
|
|
tech: "HTML, CSS, Javascript",
|
|
|
|
|
github: "https://github.com/Alvalens/unmuh-jember-landing-page",
|
|
|
|
|
preview: "https://alvalens.github.io/unmuh-jember-landing-page/",
|
|
|
|
|
},
|
|
|
|
|
{
|
2023-09-06 07:45:24 +07:00
|
|
|
year: "2022",
|
2023-09-05 21:39:08 +07:00
|
|
|
title: "Alvalens Website",
|
|
|
|
|
tech: "Javascript, Next Js, TailwindCSS",
|
2023-09-06 07:45:24 +07:00
|
|
|
github: "https://github.com/Alvalens/Alvalens-porto-1",
|
2023-09-05 21:39:08 +07:00
|
|
|
preview: "https://alvalens.my.id",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "Python audio tranlator",
|
|
|
|
|
tech: "Python, Assembly AI",
|
|
|
|
|
github: "https://github.com/Alvalens/python-audio-translation",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "A4 Education website",
|
|
|
|
|
tech: "PHP, Laravel, Bootstrap, MySQL, jQuery, DataTables",
|
|
|
|
|
github: "https://github.com/Alvalens/A4",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "Cry Cast crypto forecast",
|
|
|
|
|
tech: "PHP, Laravel, Bootstrap, MySQL",
|
|
|
|
|
github: "https://github.com/Alvalens/cry-cast",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
year: "2023",
|
|
|
|
|
title: "Mini Harbor",
|
|
|
|
|
tech: "Python, Pygame",
|
|
|
|
|
github: "https://github.com/Alvalens/mini-harbor",
|
|
|
|
|
preview: "",
|
|
|
|
|
},
|
2023-09-03 08:45:12 +07:00
|
|
|
];
|
|
|
|
|
export default function Page () {
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<main className="overflow-hidden">
|
2024-09-01 08:24:04 +07:00
|
|
|
<FixedButon href="/projects">
|
2023-09-06 16:39:25 +07:00
|
|
|
<FontAwesomeIcon
|
|
|
|
|
icon={faChevronLeft}
|
|
|
|
|
className="text-black pr-10"
|
|
|
|
|
/>
|
|
|
|
|
</FixedButon>
|
2023-09-05 21:39:08 +07:00
|
|
|
<div className="min-h-screen w-screen mt-10 md:mt-0 p-10 flex justify-center items-center flex-col mb-10">
|
2023-09-03 08:45:12 +07:00
|
|
|
<div className="flex justify-center items-center flex-col my-5 self-start ">
|
|
|
|
|
<motion.div
|
|
|
|
|
className="bg-gray-700 w-28 h-1 rounded-full mb-3 self-start"
|
|
|
|
|
initial={{
|
|
|
|
|
opacity: 0,
|
|
|
|
|
x: -250,
|
|
|
|
|
}}
|
|
|
|
|
animate={{
|
|
|
|
|
opacity: 1,
|
|
|
|
|
x: 50,
|
|
|
|
|
}}
|
|
|
|
|
transition={{
|
|
|
|
|
delay: 0.5,
|
|
|
|
|
duration: 1,
|
|
|
|
|
type: "spring",
|
|
|
|
|
}}></motion.div>
|
|
|
|
|
<motion.div
|
|
|
|
|
className="bg-gray-700 w-28 h-1 rounded-full"
|
|
|
|
|
initial={{
|
|
|
|
|
opacity: 0,
|
|
|
|
|
x: 200,
|
|
|
|
|
}}
|
|
|
|
|
animate={{
|
|
|
|
|
opacity: 1,
|
|
|
|
|
x: 0,
|
|
|
|
|
}}
|
|
|
|
|
transition={{
|
|
|
|
|
delay: 0.5,
|
|
|
|
|
duration: 1,
|
|
|
|
|
type: "spring",
|
|
|
|
|
}}></motion.div>
|
|
|
|
|
<motion.h1
|
|
|
|
|
className="text-3xl font-bold mt-3"
|
|
|
|
|
initial={{
|
|
|
|
|
opacity: 0,
|
|
|
|
|
x: -200,
|
|
|
|
|
}}
|
|
|
|
|
animate={{
|
|
|
|
|
opacity: 1,
|
|
|
|
|
x: 0,
|
|
|
|
|
}}
|
|
|
|
|
transition={{
|
|
|
|
|
delay: 0.7,
|
|
|
|
|
duration: 1,
|
|
|
|
|
type: "spring",
|
|
|
|
|
}}>
|
|
|
|
|
Archive
|
|
|
|
|
</motion.h1>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="mx-auto container md:px-10 grid grid-cols-1 mb-">
|
|
|
|
|
{/* invisible table */}
|
|
|
|
|
<table className="space-y-3">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr className=" hover:shadow-md transition-all ease duration-500">
|
|
|
|
|
<th className="text-start">Year</th>
|
|
|
|
|
<th className="text-start">Title</th>
|
|
|
|
|
<th className="text-start">Technology</th>
|
|
|
|
|
<th className="text-start">Link</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{projects.map((project, index) => (
|
|
|
|
|
<tr
|
|
|
|
|
key={index}
|
|
|
|
|
className="hover:shadow-md transition-all ease duration-500">
|
|
|
|
|
<td>{project.year}</td>
|
|
|
|
|
<td>{project.title}</td>
|
|
|
|
|
<td>{project.tech}</td>
|
|
|
|
|
<td>
|
2023-09-05 21:39:08 +07:00
|
|
|
<div className="flex flex-row justify-center items-center">
|
2023-09-03 08:45:12 +07:00
|
|
|
{project.github && (
|
|
|
|
|
<a
|
|
|
|
|
href={project.github}
|
|
|
|
|
title="Link to GitHub">
|
|
|
|
|
<FontAwesomeIcon
|
|
|
|
|
icon={faGithub}
|
|
|
|
|
className="text-xl mr-2"
|
|
|
|
|
/>
|
|
|
|
|
</a>
|
|
|
|
|
)}
|
|
|
|
|
{project.preview && (
|
|
|
|
|
<a
|
2023-09-06 16:39:25 +07:00
|
|
|
href={project.preview}
|
2023-09-03 08:45:12 +07:00
|
|
|
title="Link to project preview">
|
|
|
|
|
<FontAwesomeIcon
|
|
|
|
|
icon={
|
|
|
|
|
faArrowUpRightFromSquare
|
|
|
|
|
}
|
|
|
|
|
className="text-xl"
|
|
|
|
|
/>
|
|
|
|
|
</a>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
))}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</main>
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
}
|