RTC
nl en
🌟Ontwikkeling van een full-stack eCommerce web-applicatie
[ Nog niet afgewerkt ]
eCommerce

Doel

In de computerprojecten van dit jaar ga ik proberen een volledige eCommerce-applicatie (zoals die van Amazon) te ontwikkelen.
Het doel van deze projecten is de noodzakelijke technologieën te selecteren, aan te leren en in de praktijk te gebruiken,
om daarna het resultaat te kunnen tonen als realistisch en operationeel applicatie-voorbeeld.
De ontwikkeling dient te gebeuren met behulp van geautomatiseerde en herbruikbare CI/CD pipelines.
De eCommerce-applicatie zal ik uiteindelijk laten draaien in een kubernetes-omgeving en ook publiek toegankelijk maken.
De volledige applicatie met gebruikte infrastructuur voorzie ik daarna ook van monitoring en een notificatie-systeem voor probleem-melding.
Applicatie-development en -operaties worden zoveel mogelijk geautomatiseerd en herbruikbaar gemaakt voor andere toekomstige applicaties.

In deze eerste oplevering wil ik volgende zaken realiseren:

  • ontwerp een real-world eCommerce applicatie,
    en maak de overeenkomstige applicatie-documentatie met diagramma’s aan
  • maak schema-migratie en (test)data-migratie scripts voor de database aan
  • ontwikkel de core van de full-stack web-applicatie met volgende stack:
    Go, Templ, AlpineJs, Tailwind CSS, DaisyUI, SQLc en LibSQL/SQLite database
  • voorzie de applicatie van externe configuratie en logging
  • ontwikkel een web-service die REST (vs gRPC, GraphQL) als API protocol gebruikt
    (synchroon opgeroepen externe afhankelijkheid)
  • maak functionele unit-tests aan
    (geen applicatie runtime environment nodig)
  • maak het eerste, snelle build-gedeelte van een CI pipeline (Continuous Integration) aan
    met compile, unit tests, code coverage checks, static code analysis checks
    (“secret scanner”, SCA = “software composition analysis” en SAST = “static application security testing”)
    en “software bill of materials” (SBOM) generation
  • dit snelle build-gedeelte van een CI pipeline moet automatisch uitgevoerd worden,
    (eventueel na een review door andere developers)
    voordat een feature branch gemerged wordt in de master branch van de source code repo;
    nog beter is deze static code analysis checks ook lokaal uit te voeren vooraf aan iedere commit
  • uitvoering van manuele tests door individuele developer
    (aparte applicatie runtime environment “devappserver” per developer nodig)

Dit project zorgt dus voor de realisatie van volgende gedeeltes van de pipelines:

CI app

Resultaat

Under construction