Hoppa till innehåll

Projekt

Ett urval av projekt från olika delar av min utveckling som programmerare – från mobilappar och backendsystem till automation, spelutveckling och inbyggda system.

Utvalt projekt

Glennergy

Glennergy är en uppkopplad energiplattform som kombinerar ett driftsatt Linux-baserat serversystem med en inbyggd ESP32‑S3-klient. Servern behandlar elpris- och väderdata och tar fram rekommendationsdata, medan den inbyggda klienten tillför lokal miljömätning, uppkoppling, diagnostik och ett touchscreen-gränssnitt.

Visa hela fallstudien
Glennergys Home-vy på touchscreen som visar lokala BME280-mätningar av temperatur, luftfuktighet och lufttryck.
Home-vyn på den fysiska enheten — lokala mätningar av temperatur, luftfuktighet och lufttryck från BME280.
Tidigare praktikprojekt · 2020

Båtramper

Ett 3–4 månader långt praktikprojekt där jag byggde en React Native-app för Android från grunden och byggde ut ett befintligt minimalt API till det applikations-API som användes av en kartbaserad plattform för båtramper.

Projektet knöt ihop mobilklient, backend/databas och administrationsflöden. Jag implementerade bland annat kartbaserad navigering med markörklustring, detaljerad information om båtramper, autentisering, bild- och kommentarflöden samt användarinskick, och anpassade ett befintligt admin-UI till projektets data och modereringsflöden.

Funktionaliteten blev färdig och fungerande, men den nya app- och webblösningen lanserades inte publikt.

Egen implementation med kollegial handledning

Historiska projektskärmbilder – vissa togs under utvecklingen, och jag har inte längre kvar skärmbilder från den slutliga färdiga versionen.

React NativeAndroidPHPMariaDBNginxREST APIGoogle Maps

Det jag arbetade med

  • Byggde React Native-appen för Android från grunden, inklusive Google Maps och markörklustring.
  • Byggde ut det befintliga minimala API:t för båtrampsdata, autentisering, bilder, kommentarer och användarinskick.
  • Anpassade och kopplade ett befintligt admin-UI till projektets data- och modereringsflöden.
  • Testade systemet främst genom manuella end-to-end-kontroller mellan databas, API, klient och administration.
Båtramper-appen för Android med båtramper grupperade på en Google Maps-karta.
Kartvy med klustrade båtramper i React Native-klienten.
Båtramper-appen för Android med en detaljerad båtrampsvy, informationsfält och funktioner för användarinnehåll.
Detaljvy från utvecklingsfasen som visar den mer omfattande data som hämtades via applikationens API. Vissa värden visas fortfarande i sin råa/interna form innan den slutliga UI-formateringen.
Båtramper-administration med en lista över inskickade båtramper och modereringsåtgärder.
Administrations- och modereringsflöde för inskickade båtramper.
Eget projekt · 2022 · Raspberry Pi

Mercury_bot

En personlig automationstjänst som hämtar kryptovalutadata, lagrar användardefinierade varningar och skickar Discord-DM när villkor för pris eller procentuell förändring uppfylls.

Jag byggde Mercury_bot 2022 med Python, CoinMarketCap API, SQLite och discord.py. Marknadsdata och alertregler lagras persistent utanför Discord-processen och utvärderas periodiskt så att matchande villkor kan utlösa direktmeddelanden.

Jag driftsatte tjänsten på min Raspberry Pi, där den har varit i bruk sedan 2022 med enstaka avbrott och fjärrunderhåll via SSH när ändringar, rättningar eller omstarter behövts.

Självhostad på Raspberry Pi sedan 2022

PythonREST APISQLitediscord.pyRaspberry PiSSH

Det projektet visar

  • Integrerade CoinMarketCap-data med en Python-tjänst och persistent lagring i SQLite.
  • Lagrade användardefinierade alertregler och utvärderade pris- och procentförändringsvillkor periodiskt.
  • Skickade triggade notifieringar som Discord-DM via discord.py.
  • Driftsatte och underhöll tjänsten på min egen Raspberry Pi och använde SSH för fjärradministration vid behov.
Arkitekturöversikt för Mercury_bot som visar datainsamling från CoinMarketCap, SQLite-lagring, alertutvärdering, Discord-notifieringar, exempelinteraktioner och drift på Raspberry Pi.
Arkitektur och verkliga botinteraktioner från Mercury_bot, en Python-tjänst som varit självhostad på Raspberry Pi sedan 2022.
Visa arkitekturöversikten i full storlek
Eget C#-spel · 2024 · Publicerat på itch.io

BattleBarbarians

Mitt första spelprojekt började som en liten OOP-skoluppgift och växte till ett komplett egenutvecklat turbaserat RPG med tre spelbara klasser, klasspecifika mekaniker, progression och en slutboss.

Den ursprungliga uppgiften krävde bara en mindre demonstration av objektorienterad programmering. Jag byggde ut den under ungefär fyra veckor med polymorft klassbeteende, turbaserade strider, inventory och belöningar, ett upptäckbart Bestiary och en lokalt sparad Hall of Fame.

Jag paketerade det färdiga spelet och publicerade det på itch.io.

Utbyggt långt utöver den ursprungliga uppgiftens krav

C#.NET 8OOPSpectre.ConsoleFiggleJSON

Tekniskt fokus

  • Använde abstraktion, arv, virtuellt beteende och polymorfism för att ge de spelbara klasserna olika stridsmekaniker.
  • Byggde den turbaserade spelloopen, slumpmässiga fiender, inventory, belöningar och progression fram till en slutboss på nivå 20.
  • Implementerade ett upptäckbart Bestiary och en lokal JSON-baserad Hall of Fame för avslutade rundor.
  • Använde Spectre.Console, Figgle och anpassad ASCII-grafik för att ge terminalspelet en tydligare visuell identitet.
Spela på itch.io
BattleBarbarians-terminalstrid med Berserker-klassen under strid och dess klassbonus aktiv.
Turbaserad strid med Berserkerns klasspecifika mekanik aktiv.
BattleBarbarians Bestiary med information om upptäckta fiender och ASCII-presentation.
Bestiary visar fiendeinformation efter att fiender har påträffats under en spelrunda.
BattleBarbarians-segerskärm efter slutbossen där spelrundan registreras i den lokala Hall of Fame.
En avslutad spelrunda registreras i den lokalt sparade Hall of Fame.
Mitt första publicerade projekt

Pannkakskocken

Det första mjukvaruprojekt jag tog hela vägen till en publik lansering – en egenutvecklad React Native-app för Android som skalar ett pannkaksrecept utifrån hur många ägg som finns tillgängliga.

Utöver beräkningsfunktionen innehåller appen vyer för recept, glutenfritt alternativ och matlagningstips.

Jag färdigställde appen och publicerade den på Google Play, vilket gjorde projektet till en viktig tidig milstolpe i att ta en idé genom implementering, färdigställande och distribution.

React NativeAndroidGoogle Play
Pannkakskocken-appen för Android med pannkaksberäkningen baserad på antal tillgängliga ägg.
Huvudfunktionen skalar receptet utifrån hur många ägg som finns tillgängliga.
Pannkakskocken-appen för Android med receptinstruktioner.
Receptinstruktioner som kompletterar beräkningsfunktionen.
Pannkakskocken-appen för Android med vägledning för en glutenfri variant.
En separat vy ger vägledning för en glutenfri variant.
Utvecklingsresa

Olika projekt, en tydligare riktning

Tillsammans visar projekten olika delar av hur jag har lärt mig att bygga mjukvara: end-to-end-system, att färdigställa och publicera en applikation, objektorienterad programdesign och automation som körs på riktig hårdvara.

I dag knyts de erfarenheterna ihop i det område jag vill fortsätta utvecklas inom: C, C++, inbyggda system och Linux, tydligast representerat av Glennergy.