diff --git a/src/pages/projects.tsx b/src/pages/projects.tsx index f4e4aa0..78d27f9 100644 --- a/src/pages/projects.tsx +++ b/src/pages/projects.tsx @@ -1,11 +1,71 @@ import {type NextPage} from "next"; import AppWrapper from "../components/AppWrapper"; -import WorkInProgress from "../components/WorkInProgress"; +import {RiMagicLine} from "react-icons/ri"; +import {BiHash, BiNetworkChart} from "react-icons/bi"; +import Link from "next/link"; +import {IconType} from "react-icons"; +import {HiOutlineRss} from "react-icons/hi"; +import {GiPathDistance} from "react-icons/gi"; +import {MdOutlineGrain} from "react-icons/md"; const ProjectsPage: NextPage = () => { + const projects: { name: string, description: string, url?: string, icon: IconType }[] = [ + { + name: "Portal", + description: "ACM Membership & Event System", + url: "https://portal.acmutsa.org", + icon: RiMagicLine + }, + { + name: "v6 Place", + description: "Paint Images with IPv6 Addresses", + url: "https://github.com/Xevion/v6-place", + icon: BiNetworkChart + }, + { + name: "Phototag", + description: "Effortlessly Tag Photos", + url: "/phototag", + icon: BiHash + }, + { + name: "Paths", + description: "Graph Traversal Algorithms", + url: "/paths", + icon: GiPathDistance + }, + { + name: "v2.xevion.dev", + description: "Jekyll-based Blog", + url: "https://v2.xevion.dev", + icon: HiOutlineRss + }, + { + name: "Grain", + description: "Pretty SVG-based Noise", + url: "https://grain.xevion.dev", + icon: MdOutlineGrain + } + ] return - - ; -} +
+ {projects.map(({name, description, url, icon: Icon}) => +
+ +
+
+
{name}
+
{description}
+
+ )} +
+ +}; export default ProjectsPage; \ No newline at end of file