95 lines
3.6 KiB
JavaScript
95 lines
3.6 KiB
JavaScript
import Head from 'next/head'
|
|
import Image from 'next/image'
|
|
|
|
import { Card } from '@/components/Card'
|
|
import { SimpleLayout } from '@/components/SimpleLayout'
|
|
import logoChuffed from '@/images/logos/chuffed.png'
|
|
import logoMiniZinc from '@/images/logos/minizinc.svg'
|
|
import logoMZNPy from '@/images/logos/minizinc-python.svg'
|
|
import logoPindakaas from '@/images/logos/pindakaas.svg'
|
|
import logoShackle from '@/images/logos/shackle.svg'
|
|
import { LinkIcon } from '@/components/SVGIcons'
|
|
|
|
const projects = [
|
|
{
|
|
name: 'MiniZinc',
|
|
description:
|
|
'A constraint modelling language for almost all types of optimization solvers.',
|
|
link: { href: 'http://www.minizinc.org', label: 'minizinc.org' },
|
|
logo: logoMiniZinc,
|
|
},
|
|
{
|
|
name: 'Chuffed',
|
|
description: 'The solver that brought Lazy Clause Generation to the world.',
|
|
link: { href: 'https://github.com/chuffed/chuffed', label: 'github.com' },
|
|
logo: logoChuffed,
|
|
},
|
|
{
|
|
name: 'Shackle',
|
|
description: 'The next generation of constraint model rewriting tooling.',
|
|
link: {
|
|
href: 'https://github.com/shackle-rs/shackle',
|
|
label: 'github.com',
|
|
},
|
|
logo: logoShackle,
|
|
},
|
|
{
|
|
name: 'Pindakaas',
|
|
description:
|
|
'A library that helps you create state-of-the-art encodings for Boolean satisfiability solvers.',
|
|
link: { href: '#', label: 'TBA' },
|
|
logo: logoPindakaas,
|
|
},
|
|
{
|
|
name: 'MiniZinc Python',
|
|
description:
|
|
'Easily run MiniZinc from Python, with incremental solving and direct data access.',
|
|
link: {
|
|
href: 'https://github.com/MiniZinc/minizinc-python',
|
|
label: 'github.com',
|
|
},
|
|
logo: logoMZNPy,
|
|
},
|
|
]
|
|
|
|
export default function Projects() {
|
|
return (
|
|
<>
|
|
<Head>
|
|
<title>Projects - Jip J. Dekker</title>
|
|
<meta name="description" content="From my brain to your computer" />
|
|
</Head>
|
|
<SimpleLayout
|
|
title="From my brain to your computer"
|
|
intro="Over the years, I have dedicated myself to many projects, big and small. The following projects are the ones where I feel I had the most impact. They are open-source, providing you with the opportunity to explore them. If you come across something that catches your interest, I encourage you to dive in. Feel free to contact me if you have any questions or would like to collaborate on their development."
|
|
>
|
|
<ul
|
|
role="list"
|
|
className="grid grid-cols-1 gap-x-12 gap-y-16 sm:grid-cols-2 lg:grid-cols-3"
|
|
>
|
|
{projects.map((project) => (
|
|
<Card as="li" key={project.name}>
|
|
<div className="relative z-10 flex h-12 w-12 items-center justify-center rounded-xl bg-white shadow-md shadow-zinc-800/5 ring-1 ring-zinc-900/5 dark:border dark:border-zinc-700/50 dark:bg-zinc-800 dark:ring-0">
|
|
<Image
|
|
src={project.logo}
|
|
alt=""
|
|
className="h-8 w-8"
|
|
unoptimized
|
|
/>
|
|
</div>
|
|
<h2 className="mt-6 text-base font-semibold text-zinc-800 dark:text-zinc-100">
|
|
<Card.Link href={project.link.href}>{project.name}</Card.Link>
|
|
</h2>
|
|
<Card.Description>{project.description}</Card.Description>
|
|
<p className="relative z-10 mt-6 flex text-sm font-medium text-zinc-400 transition group-hover:text-teal-500 dark:text-zinc-200">
|
|
<LinkIcon className="h-6 w-6 flex-none" />
|
|
<span className="ml-2">{project.link.label}</span>
|
|
</p>
|
|
</Card>
|
|
))}
|
|
</ul>
|
|
</SimpleLayout>
|
|
</>
|
|
)
|
|
}
|