Skip to content

banjo/ordkupan

Repository files navigation

Ordkupan

Ordkupan

Spelling bee pÄ svenska, skapad för skojs skull. Orden hÀrstammar frÄn SAOLs ordlista. Ett nytt spel Àr tillgÀngligt varje dag. Progress, anvÀnda ord, namn, ID och streak sparas i localStorage. Alla ordkombos sparas i en Postgres-databas, Àven score och grundlÀggande anvÀndardata baserat pÄ ID:t i localStorage sparas. Detta för att kunna visa statistik och vÀnner.

Finns tillgÀnglig hÀr.

Tekniker

  • React
  • Next.js (app directory)
  • Tailwind CSS
  • Framer Motion
  • React Hot Toast
  • Zustand
  • PostgreSQL
  • pnpm
  • Docker & Docker Compose

Installation

  1. Installera pnpm. Eftersom att pnpm Àr snabbare Àn npm och yarn, sÄ rekommenderas det att anvÀnda pnpm. Det Àr dock inte ett krav.

  2. Klona projektet.

git clone git@github.com:banjo/ordkupan.git
  1. Installera dependencies.
pnpm install
  1. Starta en lokal databas med Docker Compose.
pnpm run db:local:start
  1. Skapa en .env-fil i root directoryn och lÀgg till följande:
DATABASE_URL=postgres://postgres:postgres@localhost:5432/ordkupan

Dessa vÀrden Àr manuellt instÀllda för att matcha Docker Compose-filen. Om du vill Àndra dessa vÀrden, sÄ mÄste du Àven Àndra dem i Docker Compose-filen.

  1. Skapa prisma-clienten (detta görs Àven automatiskt vid pnpm install).

För att kunna anvÀnda TypeScript med Prisma, sÄ mÄste du först skapa prisma-clienten. Detta görs genom att köra följande kommando:

pnpm run db:local:generate
  1. Migrera databasen. För att skapa alla tabeller i databasen, sÄ mÄste du köra följande kommando:
pnpm run db:local:migrate
  1. Populera databasen med ordkombos. Efter att rÀtt tabeller har skapats, sÄ mÄste du populera databasen med ordkombos. Detta görs genom att köra följande kommando:
pnpm run db:local:seed
  1. Starta appen.
pnpm run dev

Cache

Eftersom att samma ordkombination servas under 24 timmar (varje dygn), sÄ cachas alla request under de 24 timmarna för att ladda sidan snabbare. Det Àr mer eller mindre default i Next. Cachningen Àr instÀlld pÄ att aldrig nollstÀllas per tidsinterval, utan den omvalideras endast via API-anrop. DÀrför görs detta med hjÀlp av ett cron-job kl 00.00 varje dag.

About

🐝 Spelling bee pĂ„ svenska

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published