Udvalgt arbejde / Projekt

Full Stack Film Applikation

Forfatter: Thomas Bonderup Udgivet: Fokusområde: Software & Arkitektur

I dette projekt arbejdede jeg i et 4 personers team, hvor vi udviklede en full stack film applikation til at søge og bookmarke film fra IMDb. Applikationen er designet fra bunden med en PostgreSQL database, backend og en single page application til frontend.

Hvorfor projektet er relevant

Kontekst frem for abstraktion

Projekterne viser det tekniske miljø, leverancepresset og systemconstraints omkring arbejdet.

Beslutninger skal kunne spores

Den nyttige del er at forstå hvilke arkitektur- eller implementeringsvalg der betød noget, og hvorfor de blev taget.

Bevis skal kunne genbruges

Et stærkt projektforløb efterlader kode, mønstre og læring, som en anden ingeniør hurtigt kan vurdere.

Software & Arkitektur Software Development Software Architecture
I dette projekt arbejdede jeg i et 4 personers team, hvor vi udviklede en full stack film applikation til at søge og bookmarke film fra IMDb. Applikationen er designet fra bunden med en PostgreSQL database, backend og en single page application til frontend.

Projektoversigt

Udfordring

Designe og levere en full-stack søgeapplikation med robust backend- og datalag i et team.

Rammebetingelser

  • Fire-personers team med delte ansvarsområder.
  • Behov for både feature-leverance og stærkt database/query-design.
  • Tidsbegrænset projekt med krav om tests.

Tiltag

  • Designede normaliseret PostgreSQL-schema og ER-model til søge-use-cases.
  • Implementerede lagdelt backend-arkitektur med ASP.NET Core og Entity Framework.
  • Byggede SPA-flows og integrerede sikre, paginerede REST API-kald.

Resultater

  • Leverede en end-to-end applikation til filmsøgning og bookmarking.
  • Implementerede avanceret søgning med ranking og søgehistorik.
  • Anvendte unit- og integrationstests på centrale serviceflows.

I dette projekt arbejdede jeg i et 4 personers team, hvor vi udviklede en full stack film applikation til at søge og bookmarke film fra IMDb. Applikationen er designet fra bunden med en PostgreSQL database, backend og en single page application til frontend.

Link til kode:
https://github.com/ThomasBonderup/RAWDATA-project-group-1

https://github.com/ThomasBonderup/RAWDATA1-portfolio-subproject-2

Database design

Jeg var med til at udarbejde et relationelt database design med database normalisering og E-R-modeller til film applikationen.

Database funktionalitet

Der blev udviklet database forespørgsel funktionalitet til at søge efter filmtitler, trigger functions til at gemme bruger forespørgsler i en søgehistorik tabel, udvidet søgefunktionalitet til at søge efter filmtitler baseret på titel, plot, karakterer og skuespiller, exact-match-forespørgsel med inverted indeks for at matche intersecting søgeord, VARIADIC arrays, søge rangering funktionalitet.

Applikationsdesign

Backend-systemet blev udviklet i ASP.NET Core med C#. Arkitekturen bestod af en lagdelt softwarearkitektur med et Web Service Layer udviklet i ASP.NET Core MVC til at levere et REST API, der kommunikerer med et Data Access Layer med Entity Framework gennem Data Transfer Objects for at få data gemt i en PostgreSQL-database, der kører på en server.

Der blev tilføjet pagination til REST API’et og grundlæggende it-sikkerhed for API’et med brugergodkendelse. Unit test og integrationstest blev brugt flittigt i projektet.

Single Page Application

Film applikationen blev designet som en Single Page Application (SPA) med funktionalitet udviklet i JavaScript og Knockout web-framework. Bootstrap blev brugt til UX.

Thomas Bonderup

Thomas Bonderup

Software Engineer

Specialiserer sig i IoT-arkitektur, distribuerede systemer, driftssikkerhed og observability, edge-to-cloud levering.

Builder-noter og projektreferencer

Hvis denne portfolio-post minder om noget, du selv bygger, tager jeg gerne en snak om implementering, arkitektur og tradeoffs.

Portfolio-posterne bygger på konkret systemarbejde, tekniske analyser og tidligere projekter. Hvis problemstillingen, arkitekturen eller tradeoffs ligner noget, du selv står med, tager jeg gerne en snak om det næste tekniske skridt.

Teknisk scope: IoT-arkitektur, distribuerede systemer, driftssikkerhed og observability, edge-to-cloud levering.

Gå videre til relateret arbejde eller start en faglig samtale

Hvis projektet overlapper med de systemer, du arbejder med, så gå videre til relateret arbejde, CV'et eller kontaktsiden for rekruttering og teknisk opfølgning.

Lad os tale om lignende arbejde

Skriv, hvis du vil tale om en rolle, et samarbejde eller følge op fagligt på noget tilsvarende.

Du kan også ringe på +45 22 39 34 91 eller skriv til tb@tbcoding.dk.

Brug formularen til spørgsmål om roller, projekter eller faglig opfølgning.

Typisk svartid: 1-2 hverdage.