signin

deno kv hackathon!

project introduction

this project has been build during the first official deno kv hackathon.

it uses a (very experimental) framework named ixalan, which i've been working on in my spare time. at it's coreixalan only uses deno's standard library, while also providing a file-based router, route overrides and a custom jsx-runtime, which is currently only used as a templating engine.

for a clear separation ixalan and app have their dedicated sections in the overall project structure.

even though some existing code has been used, some major rewrites for the framework have happened during the hackathon, whereas everything from app has been written from scratch.

deno kv

deno kv is the project's primary data source. there's a thin wrapper around kv with crud operations and a schema is passed to the create database function to enforce type-safety. on server startup a lookup is happening to potentially seed the database. the underlying data is provided via pokeapi. for authentication deno kv auth has been chosen, which is the project's only dependency apart from deno's excellent standard library.

project idea

on the project there are two primary routes. there's /pokemon and there's /leaderboard.

/pokemon provides a paginates search, which is fed by deno kv. each of the results link to a pokemon via it's id. the search is also capable of handling pokemon properties, so that queries such as "type:fire type:flying" or "zap type:electric" are possible.

on the individual /pokemon/:id routes, there's a minimalistic entry to the individual pokemon. underneath there are four buttons: allstar, favorite, infamous and versatile. each logged in user has the chance participate in the voting!

the results can be seen on /leaderboard, where some simple filter options and aggregations are available. on the go live there's also a hidden feature, which has to be unlocked by the community!