Skip to content

Want to learn how to build enterprise-grade solutions for cloud-scale architectures? Start by learning to tear one down!! Then transfer that knowledge to your own enterprise application development projects.

License

Notifications You must be signed in to change notification settings

30DaysOf/deconstructing-contoso-real-estate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deconstructing Contoso Real Estate

Building enterprise-grade applications is challenging.

So how can you learn to build one? Start by tearing one down!! Say hello to Contoso Real Estate - an open-source reference implementation that adopts a composable architecture to support micro-frontends and a cloud-native backend - and provides the perfect sandbox for hands-on exploration and learning.

Important

This is a reference implementation that is under active development, meant to act as a living sample for core tools and technologies. Things may break or be in a process of active migration - and that's to be expected.

The main goal for this project is to learn how to deconstruct and learn from the open-source project so you can then **transfer the knowledge to your own projects and implementation later. If you have any questions or concerns, file an issue to start a discussion on the project repo

Learn Live

This repository serves as a self-guided series of Learn Labs that mirrors our 4-part Learn Live Series of 90-minute episodes:

  1. Ep 1: Building Composable Cloud-Native Solutions on Azure
  2. Ep 2: Building Micro-frontends with an API-first design
  3. Ep 3: Integrating 3rd Party Payments and Authentication Features
  4. Ep 4: Deploy with Azure Developer CLI - E2E Testing with Playwright

Note

Our philosophy reflects the "reverse-engineering mindset" for active learning - as compared to the "build from scratch mindset" that is typically covered by documentation and quickstart tutorials.

The idea is not new - reverse engineering and pattern-matching can even be the preferred learning style for some developers. What we want to do differently is look at this from the developer experience perspective. We want to raise awareness of key tools and technologies that exist today that do two things:

  • they enhance our productivity by reclaiming time or reducing friction in completing key tasks.
  • they enhance our technology IQ by actively informing or educating us on tools and practices in unfamiliar codebases, in way that help us skill up faster.

Learning Objectives

  • 1️⃣ | Design a multi-scenario solution for extensibility.
  • 2️⃣ | Develop in consistent dev environments for collaboration.
  • 3️⃣ | Deploy with unified developer tools for productivity
  • 4️⃣ | Deconstruct with AI pair programmers for active learning.

Along the way, you'll get familiar with core terms and concepts like:

  1. Composable architecture withan API-first design
  2. Configuration-as-code with development containers
  3. Infrastructure-as-code with a unified tool for deployment
  4. Cloud-native technologies for scalability & cost-optimization
  5. Generative AI for efficient code creation & exploration
  6. Test Automation frameworks for reliable end-to-end testing

And, you'll get a better understanding of core tools & technologies including:

  1. GitHub Codespaces - your dev container in the cloud
  2. GitHub Copilot - your AI pair-programmer for productivity
  3. Visual Studio Code - your IDE for personalization
  4. NPM Workspaces - your monorepo for multi-team collaboration
  5. Azure Developer CLI - your unified tool for Azure deployment
  6. Playwright - your framework for reliable end-to-end testing

Want to join me on the teardown adventure? Just bring your browser and a GitHub account and let's goooooo!