Skip to content

Instantly share code, notes, and snippets.

@lejonmanen
lejonmanen / backend.md
Created August 14, 2026 14:10
Checklista för att sätta upp backend-server med Node.js

Skriv i terminalen:

# Skapa projektmapp och gå in i den
mkdir awesome-server/
cd awesome-server/

# Skapa mapp för kod och fil för serverkoden
mkdir src
echo "console.log('Hello from server')" > src/server.ts
@lejonmanen
lejonmanen / api.ts
Created August 14, 2026 11:21
TypeScript API states
type ApiState =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; pokemonList: string[] }
| { status: "error"; error: string };
const [state, setState] = useState<ApiState>({ status: "idle" });
async function fetchPokemon() {
setState({ status: "loading" });
@lejonmanen
lejonmanen / environment.py
Last active June 16, 2026 16:29
Environment file for Python + Playwright + behave
from playwright.sync_api import sync_playwright
# Runs before any scenarios
def before_all(context):
# Start Playwright and the browser - close it in after_all
context.playwright = sync_playwright().start()
context.browser_type = context.playwright.chromium
context.browser = context.browser_type.launch(headless=True)
# Runs at the start of each scenario
@lejonmanen
lejonmanen / calculator.feature
Created April 7, 2026 19:29
Python BDD exempel, Gherkin och behave
# Gör en Feature-fil för varje större feature i appen.
# Varje feature testas med ett eller flera scenarion.
# Varje scenario beskrivs med flera steg, som definieras i en separat step-fil.
#
# Även icke-tekniska personer ska kunna läsa och förstå vad dessa testscenarier går ut på.
#
Feature: Enkel kalkylator
Scenario: Addera två tal
@lejonmanen
lejonmanen / LoginForm.jsx
Created April 1, 2026 16:22
React-formulär med validering
/*
Exempel på validering av formulär
Förbättringar:
+ Flytta valideringslogik till en separat hook för återanvändbarhet.
+ Lägg till fokus på första fel för bättre tillgänglighet: inputRef.current.focus()
+ Lägg till visuell feedback på input (t.ex. border-färg) för bättre UX. Återkoppla med mer än färg.
*/
import { useState } from "react";
@lejonmanen
lejonmanen / App.jsx
Created March 31, 2026 12:21
React Suspense exempel
// App.jsx
import { Suspense } from 'react'
import './App.css'
import Loading from './Loading'
import Consumer from './Consumer'
const App = () => (
<div>
<Suspense fallback={<Loading />}>
<Consumer />
@lejonmanen
lejonmanen / python-ci.yml
Last active March 27, 2026 15:04
Exempel på YAML för Python
name: Python CI/CD
# Talar om när jobben ska köras. Denna inställning bevakar när man gör push eller pull request mot branchen "main".
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
@lejonmanen
lejonmanen / txt
Created November 14, 2025 13:18
Gott och blandat för grupparbete JavaScript grund
SVG är ett bildformat, som man kan skriva med HTML-syntax. Eftersom den består av HTML-element kan man välja ut de ingående delarna med hjälp av JavaScript.
Exempel
Filen innehåller:
<path id="scaffold" ...>
Skriv i JS:
const part1 = document.querySelector('#scaffold')
part1.classList.add('css-klass som gör elementet osynligt')
@lejonmanen
lejonmanen / Button.tsx
Created October 14, 2025 09:52
Button component with TypeScript and Tailwind
import React from 'react';
// this button can have all <button> props from standard HTML
type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
className?: string;
children?: React.ReactNode;
};
/* Example use:
<Button> I'm a button </Button>
@lejonmanen
lejonmanen / dynamodb-node.ts
Created September 14, 2025 15:22
Använda DynamoDB från Node
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { DynamoDBDocumentClient, GetCommand, PutCommand, ScanCommand } from "@aws-sdk/lib-dynamodb";
/*
GetCommand används för att hämta en specifik Item i en Table. (AWS rekommenderar att man har allt i samma tabell.)
ScanCommand kan hämta hela innehållet i en tabell. Opraktiskt om man har mycket data.
PutCommand lägger till en ny Item.
UpdateItemCommand ändrar en Item.
DeleteCommand
*/