Giter VIP home page Giter VIP logo

ordkupan's Introduction

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 [email protected]: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.

ordkupan's People

Contributors

banjo avatar jwilsson avatar

Watchers

 avatar

Forkers

jwilsson

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.