Giter Club home page Giter Club logo

nx-workshop's Introduction

Nx Workshop - Building a Board Game Store

In this workshop we'll be building a store for a fictional board game company called "The Board Game Hoard".

We're going to be using Nx and some its plugins to accelerate the development of this app.

Some of the things you'll learn:

  • Generating a pristine Nx workspace
  • Generating frontend Angular apps and backend APIs inside your workspace, with pre-configured proxies
  • Creating shared libs for re-using code
  • Generating new routed components with all the lazily loaded routes pre-configured by Nx and ready to go
  • How to organize code in a monorepo
  • Easily move libs around your folder structure
  • Creating Storybook stories and e2e Cypress tests for your components
  • How to set boundaries between the different scopes in your project
  • Write automated source code generators for common tasks in your workspace
  • Set-up CI for your Pull Requests
  • Add distributed caching
  • Set up the NxCloud GitHub integration
  • Write advanced deployment targets using the run-commands executor
  • Set up Continuous Deployment systems that deploy only the affected projects

To help you understand how to apply some of these lessons in your own projects, we'll try to build a more "real-world" example. However, because of the time constrains and to make sure we get to cover as much material as possible, we'll provide you with all the code for any "non-Nx" work you need to do (like styling and configuring Angular routes) - so you can focus on learning to use Nx to its full potential.

This is what we'll build:

lab4 file structure

Slides

Can be found here

Pre-requisites

Nx has support for a lot of platforms, but in this workshop we'll be using mainly Angular. While all the code for any Angular specific work will be provided, it will help if you have some experience with the Angular ecosystem.

Make sure you have the following installed:

Optional:

How the labs work

Each lab will have the following sections:

  • ๐Ÿ“š "Learning outcomes"
    • A summary of the most important things you'll learn in that lab
  • ๐Ÿ“ฒ "After this workshop, your app should look similar to this"
    • This will contain a screenshot of any changes to the app visuals after the lab
    • Any changes to the source directory structure
  • ๐Ÿ‹๏ธโ€โ™€๏ธ "Steps"
    • All the lab steps you need to follow
Hints and solutions feat. Ron the whale ๐Ÿณ

While the mighty narwhal is away on secret missions, you will occasionally see his assistant, Ron The Whale ๐Ÿณ offering helpful hints to the different exercises. Please use these if you get stuck.

If you get stuck running any Nx command, there is a SOLUTION.md file in each lab's folder.

As mentioned, for anything Angular/styling or HTML template work we will provide the code you need as direct links to the files. Please use these as much as possible.

Finally, if you fall behind or join late, Git branches are provided for each lab, which will fast forward you to that lab - git checkout lab-x (where x is the number of the lab you want to start).

If you want to skip ahead to the end: git checkout final-solution

The labs

Each lab will contain a link to the next one. Start from "Lab 1" and move through them as required:

Day 1

Day 2

Option 1 - React frontends and more custom generators practice Option 2 - Heroku API deployments with Docker
๐Ÿงญ Lab 19 - Creating and deploying a 2nd frontend ๐Ÿงฒ Lab 19 - Deploying the API
โ›ฑ๏ธ Lab 20 - Mock Store ๐ŸŽธ Lab 20 - Connecting the frontend and backend
๐Ÿช Lab 21 - Setting up CD for automatic deployment ๐ŸŽˆ Lab 21 - Setting up CD for automatic deployment
๐Ÿ’ˆ Lab 22 - Deploying only what changed ๐Ÿ’ˆ Lab 22 - Deploying only what changed

nx-workshop's People

Contributors

dependabot[bot] avatar frozenpandaz avatar isaacplmann avatar jeffbcross avatar meeroslav avatar rarmatei avatar willi84 avatar zackderose avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.