Command Palette
Search for a command to run

Drömmer du om att gå med i DWWW?

Drömmer du om att gå med i DWWW?

Då måste du känna till vår tech-stack och bli king på webbutveckling. I denna artikel går jag (Oliver Levay) igenom vår tech-stack och ger tips på hur man kan lära sig olika teknologier som vi använder.

Vi börjar längst bak i backend, där lever databasen. Vi använder oss av postgresql som påstår sig vara "The World's Most Advanced Open Source Relational Database". Men egentligen är det SQL databas som SQL databas kan jag tycka.

Ni kanske känner igen elefanten?

image

Vår databas lever i en docker container, faktum är att alla våra funktioner lever i varsin docker container. Docker används i flera syften, jag kan nämna ett par. Det ser till att din tjänst är isolerad till en helt egen modul, så att flera tjänster inte råkar bråka med varandra. Dessutom ser det till att din tjänst alltid kör samma operativsystem oavsett om utvecklaren använder linux, windows eller mac. Inga mer "det funkar på min maskin" klagomål.

image

Docker containerna vi har är:

  • database - innehåller vår postgresql databas
  • minio - minio är ett open-source filsystem, används av oss för att lagra mötesdokument, bilder och så vidare.
  • search - vi använder meilisearch för att indexera våra medlemmar och söka bland dom supersnabbt
  • backend - här lever vårat GraphQL API, mer om det längre ner.
  • frontend - här lever vår React frontend byggd i Next.js, mer om det längre ner

Det finns fler containers än dessa, men dom andra är egentligen irrelevanta att känna till.

Backend

image

Vår backend är skriven i TypeScript, som är JavaScript med stöd för typer.

image

För att komma åt databasen från backend använder vi Knex.js som är en så kallad "query builder". Den hjälper programmeraren enkelt skriva SQL queries genom att skriva kod istället. Vi använder även knex för att seeda och migrera databasen.

image

På backend använder vi oss av GraphQL för att kommunicera med frontend. Det är ett queryspråk för att definera ett API. Om du är sugen på att gå med i DWWWs backend-team är detta viktigt att kunna och förstå. Vi använder Apollo Server för att köra själva servern. Om du vill lära dig bygga GraphQL apier (inför att gå med i DWWW? 😉), så rekommenderar jag Apollo Servers Getting Started Guide

För att gå med i DWWWs backend team behöver du lära dig:

  1. Grunderna inom relationsdatabaser, specifikt postgresql.
  2. JavaScript / TypeScript
  3. Grunderna i Knex.js och hur det fungerar med migrationer
  4. Vad ett webb API är och grunderna om olika typer av anrop
  5. Grunderna i GraphQL och hur man använder Apollo Server för att bygga ett GraphQL API.

Du måste inte kunna ALLT innan du går med, men du måste känna till det åtminstone.

DWWW rekommenderar
  • Codeacademys JavaScript kurs
  • Codeacademys TypeScript kurs
  • Apollo Servers Getting Started Guide
Frontend

image

Vår frontend är också skriven i TypeScript. Vi använder React för att skriva våra UI komponenter.

Som tidigare nämnt använder vi Next.js, ett React framework. Vi använder Next.js för att få smidigt stöd för statiska och server-side renderade komponenter, göra så att sidan känns snabbare, hjälpa till med routing och mycket mer.

image

Vi använder Material UI som komponentbibliotek, så sparar vi tid när vi utvecklar genom att inte behöver utveckla allt från grunden.

Vi använder i18next för att översätta vår hemsida till engelska, och möjligtvis fler språk i framtiden.

Om du vill bli en del av DWWWs frontend team behöver du lära dig:

  1. HTML, CSS och JavaScript / TypeScript
  2. React
  3. Next.js
  4. Hur man konsumerar ett GraphQL API.

Du måste inte kunna ALLT innan du går med, men du måste känna till det åtminstone.

Jag personligen lärde mig HTML, CSS och JavaScript på codeacademy (#not sponsored), och jag rekommenderar deras kurser för att lära sig grunderna.

DWWW rekommenderar
  • Codacademys HTML kurs
  • Codeacademys CSS kurs
  • Codeacademys JavaScript kurs
  • Codeacademys TypeScript kurs
  • Learn React Quick Start Guide (beta) , vi rekommenderar inte den som inte är beta då den använder utdaterad react logik.
  • Learn Next.js docs
  • Introduction to GraphQL
Appen

Appen, som för närvarande endast finns för android är byggd i React Native. React Native kan man använda för att skriva appar med React kod, vilket är väldigt smidigt för att många i teamet redan kan React. Därmed är det väldigt likt kodbasen i frontend. App-teamets största uppgift just nu är att lansera appen till iOS.

För att utveckla smidigt, hjälpa till med push notiser och bygga appen använder vi Expo.

Om du vill bli en del av DWWWs app-team behöver du lära dig:

  1. HTML, CSS och JavaScript / TypeScript
  2. React
  3. React Native
  4. Expo

Du måste inte kunna ALLT innan du går med, men du måste känna till det åtminstone.


Vår källkod

Jag tror att det var det mesta. Det finns fler saker att ta upp, men det som är absolut viktigast att kunna har tagits upp i denna artikel. Om du vill läsa vår källkod finns den på GitHub:

Medlemssidan:

https://github.com/Dsek-LTH/member-page.git

frontend finns under /frontend och backend finns i skrivande stund under /backend/services/core

Appen

https://github.com/Dsek-LTH/dsek-app

Appen behöver lanseras till iOS ASAP.

new.dsek.se

https://github.com/Dsek-LTH/landing-page.git

Denna sida kommer troligtvis genomgå en del förändringar under nästa år.

Framtiden

Under detta året har vi fått många lärdomar inom DWWW.

Ett av dom är att om ett gäng duktiga och drivna utvecklare slår sina kloka huvuden ihop kan dom göra något riktigt häftigt.

Om du vill vara med och göra skillnad, på riktigt, inom DWWW, så behöver du bli king på webbutveckling. Bästa tiden att börja var igår, näst bästa är just nu :) Lycka till!


Har du några frågor? Tveka inte att höra av dig till dwww-ansvarig@dsek.se

Jag hejar på dig med fanan i högsta hugg.

image

För D-sektionen i tiden.

Oliver Levay

Nyhetsbrev nr. 12!

distant christmas music ... what season again? It's utskott-söker-massa-funktionärer-season såklart! HTM-🐳 är förbi oss, utskottsmästarna är invalda, vice-posterna likaså och fler där till... så nu öppnar snart ansökan till många utskott inför nästa år! Du hittar de som är öppna just nu under 'Ansökan & Intresseanmälan' längre ned. Håll utkik längre fram för att inte missa någon ansökan!

HTM-VAL

Stort grattis till alla invalda, och bra jobbat till alla er som kandiderade till någon post!!

Ordförande

Axel Rosenqvist

Vice Ordförande

Mikolaj Sinicka

Skattmästare

Emma Kujala

Studierådsordförande

Ludvig Delvret

Informationsansvarig

Angelica Larsson

Cafémästare

Sofia Tatidis

Sexmästare

Sebastian Malmström

Näringslivsansvarig

Ludvig Svedberg

Källarmästare

Märta Holmquist

Aktivitetsansvarig

Alex Gustafsson

Vice Skattmästare

Axel Svensson

Vice Studierådsordförande

Yazan Al-Aswad

Vice Informationsansvarig

Emilia Blunck

Vice Cafémästare

Emma Haggren

Vice Sexmästare

Pernilla Åström

Vice Näringslivsansvarig

Nils Ekstrand

Vice Källarmästare

Anton Jeppson

Vice Aktivitetsansvarig

Adam Tegelberg Hägfors

Revisor (2 st)

Oskar Ström

Le Filip Tran

Framtidsordförande

Kaspian Jakobsson

Trivselmästare

Vakant

Valnämndsrepresentant vid TLTH

Vakant

Skattförman (1-3 st)

Joel Bäcker

David Ekblad

Alumniansvarig

Vakant

Utedischoansvarig (1-2 st)

Anna Grimlund

Övermarskalk

Vakant

Talman

Jakob Sinclair

Veckans meme

Applicant

The Guild

Volunteering

Contact us

Address

D-sektionen inom TLTH
Box 118
221 00 Lund
iDét, E-house basement
Kommunikationsvägen 2A
223 63 Lund
Organization number
845003-2878
D-sektionen inom TLTH