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

Doel

Dit de eerste oplevering in een reeks van samenhorende computerprojecten.
In deze projecten/posts ga ik proberen in een jaar tijd 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 te integreren in een software-fabriek.
Met deze software-fabriek die in de praktijk uitbouw ontwikkel ik een realistisch en operationeel applicatie-voorbeeld.
De ontwikkeling dient te gebeuren met behulp van geautomatiseerde en herbruikbare CI/CD pipelines.
De resulterende eCommerce-applicatie zal uiteindelijk draaien in een kubernetes-omgeving en ook publiek toegankelijk zijn.
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, Htmx, AlpineJs, Tailwind CSS, DaisyUI, SQLx en MariaDB 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 “local-devappserver” per developer nodig)

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

CI app

Resultaat

Under construction