Hipsters rule the world!

For å skape en bedre applikasjon og en bedre brukeropplevelse har vi utviklet en SPA applikasjon med React og .NET Core 6. Applikasjonen lister ut matvarer som ikke er registret i kjøleskapet. Applikasjonen benytter Node.js og Bootstrap som er open source.
Bootstrap er benyttet for å skape en bedre brukeropplevelse for de gir bruker mulighet til å markere det de har handlet.
Backend gjør spørring mot Microsoft Dataverse og lister ut matvarer som mangler i en handleliste.

React
C# .NET Core 6

Hva har skjedd siden i går?

I dag har teamet jobbet beinhardt for å stable på beina en fungerende løsning. Vi har jobbet målrettet og hardt for å forbedre de fire hovedområdene av konseptet vårt.
Teamet syr sammen det vi har laget til en fungerende løsning

Most Extreme Business Value

Når du kommer hjem fra en lang dag med studier og kriminalbekjempelse, er det godt at du slipper å tenke “hva skal vi ha til middag i dag?”.
Kjøleskapet har allerede oversikt over hva du har, vår flotte app kan gi deg oppskrift på hva du kan lage. Har du en favorittpizza? Har du det du trenger?
Du trenger ikke bekymre deg. Hvis du mangler noe, kan du sjekke handlelisten i vår flotte webapp. Hvis du ikke orker lage maten selv, send en bestilling til Pizza Time (@pointtaken). Alt gjøres gjennom vårt enkle grensesnitt i vår PowerApp.

Alt dette letter hverdagen til en hvilken som helst superhelt! Skilpadder spesielt 😉

Vi kaller det Fridgitoid 9000®

Ved å lage pizza, ta ut matvarer, og rangere de pizzaene du liker best vil du generere data i vårt Dataverse-miljø som vi kan analysere og presentere i PowerBI dashbord.
Dette vil åpne ny verden av innsikt i matvarekonsum!

Vi frigjør masse tid i hverdagen til alle hverdagshelter, samtidig som vi fjerner behovet for “hva skal vi ha til middag i dag?”

Rock Solid Geeknes

Vi har fått hele kommunikasjonslinjen på plass fra kjøleskap til sky. Knappen på arduinoen registreres av den tilkoblede raspberry pi’en, som igjen sender bildet til Azure for analyse.

Det viste seg å være nokså utfordrende å få en enkel knapp til å fungere på arduinoen. I mangel av riktige resistor satt vi opp knappen på en alternativ måte:

Dette gjorde at signalet fra knappen ikke var konsekvent ”0” når den ikke var trykket ned, men vekslet mellom 1 og 0. Løsningen ble å ta vare på de 10 siste state’ene til knappen, og først når vi hadde status «1» 10 ganger på rad, registrerte vi dette som et knappetrykk. En løsning vi er godt fornøyde med.

Kjøleskapet er også snekret sammen av papp gaffateip og kjærlighet. Med integrert webkamera og skuff til mikrokontrollene våre. Arduinoen er også utstyrt med en roterende motor, som skal gi Frigitoid 9000 litt sårt trengt bling.

3D-printet deksel til Arduino

Killer App + Excellent User Experience

For å gjøre det lettere for Ninja Turtles i kollektivet å handle inn det som mangler i kjøleskapet har vi bestemt oss for å lage en responsive SPA applikasjon med React og .NET core 6 som kan brukes på mobil.
Applikasjonen gjør en spørring mot Microsoft Dataverse og lister ut ingredienser som ikke står registret i kjøleskapet.
Bruker har mulighet til å markere matvarene som er kjøpt inn, og når matvarene legges i kjøleskapet blir de registret, og matvarene forsvinner fra handlelisten.
Applikasjonen kjører på en app service i Azure og vi har skrevet kode for infrastruktur med Pulumi.
Vi jobber også med å automatisere CICD as code med YAML og det vil bli kjørt i Azure Devops.

Vi tenker også å benytte PowerBI til å hente ut data på hvilke pizzaer som blir spist mest og en oversikt over hvilke matvarer som blir handlet mest.
Vi ønsker å intrigere dette inn i vår powerapp slik at dette blir synlig for bruker.

Mer om dette i en annen bloggpost 😉

WebApp
PowerApp

nINjas satser på grønn tech!

Før lunsj på dag to har hele nINjas gjennomgått kurs for bærekraftig utvikling, og lært en hel del.

Vi har fått en forståelse av de 8 prinsippene for bærekraftig programvareutvikling!
Vi har lært om hvordan vi skriver mer bærekraftig kode, som bruker mindre strøm. Hvordan servere kan spinnes opp og ned basert på strømmiks i nettet. Og mye mer.

Det har vært interessant læring for hele teamet, og noe vi kommer til å ta med oss videre etter denne konkurransen!

Vi er stolte av å være det første teamet hvor alle har fullført kurset!

Kjøleskapet kan se!

Etter mye klabb og babb har vi endelig fått satt opp Raspberry Pie’en vår med Python, Vs code, ssh-tilkobling til git-repo og selvfølgelig et fungerende webkamera!

Ved hjelp av et lite bash-script, Azure’s egne pythonmoduler får vi lastet opp og analysert bildene innen få sekunder, med en liste over alle objekter i bildet. Etter litt testing er vi veldig imponert over presisjonen, selv om Azure insisterer på at klementin vår er et eple. Svaret sendes videre til en Power Automate flow som oppdaterer data verse.

Arbeid utført. Pull request til godkjenning

Når arbeidstempoet er såpass høyt, er det fort gjort å glemme skikkelig testing eller linting der det trengs, så før det merges inn i develop branchen, må endringene godkjennes av en av teammedlemmene. Konfigfiler og nøkler skal for eksempel ikke inn i kildekoden.

Kjøleskapsmagi

Skillpaddens kamp for kjapp middag og mindre matsvinn.

Vi i nINjas er opptatt av enkelhet og miljø. Derfor ønsker vi å lage en kjøleskapsanordning som gir forslag til pizzaoppskrifter basert på innholdet du har i kjøleskapet. Dette fordi pizza er den eneste maten som duger for nINja-helter.

Vi vil bruke kamerateknologi, som ved hjelp av AI, gjenkjenner innholdet i kjøleskapet og foreslår hva slags pizza du kan lage. I tillegg vil vi jobbe for å bruke så mye som mulig av det som finnes i kjøleskapet for å forhindre matsvinn.

Av teknologi vil vi bruke noe fysisk som kamera, raspberry pi og en skjerm.
Backend vil i hovedsak bestå av Power Automate, Azure Cognitive services og Dataverse.

Brukeren vil legge mat i kjøleskapet, som igjen vil genere en varsling i en applikasjon om forslag til pizza. Hvis noen ingredienser mangler vil også dette synes.
Hvis man ønsker å lage en spesifikk pizza, men mangler ingredienser får man vite hva som må kjøpes inn i appen.