Installing and Setting Up the Project

  1. Install Node Package Manager (NPM)

    If you don’t already have NPM, you can install it by following the instructions on the Node.js website.

  2. Install Dependencies:

    $ npm install
              

    This command will install all the required packages for the project, such as TypeScript, Javascript, Scss, HTML and CSS. [Source: README.md]

  3. Run the Development Server:

    $ npm run dev
              

    This command will start a development server with Hot Module Replacement (HMR). HMR will automatically update the browser when changes are made to the code. [Source: README.md]

  4. Run a Production-Like Server:

    $ npm run serve
              

    This command will start a server that mimics a production environment. This is useful for testing how the application will perform in a production environment. [Source: README.md]

  5. Build a Production-Ready Build:

    $ npm run build
              

    This command will create a production-ready build of the application. This build will be optimized for performance and size. [Source: README.md]

  6. Run Linting:

    $ npm run lint
              

    This command will run ESLint on the TypeScript files to ensure that the code adheres to the project’s coding style. [Source: README.md]

  7. Run Tests:

    $ npm run test
              

    This command will run Jest and Enzyme with enzyme-adapter-preact-pure to test the application’s functionality. [Source: README.md]

  8. Deploy the Application:

    For the audience-app application, you can use the following command to deploy the application.

    $ npm run deploy
              

    [Source: audience-app/README.md]

    Make sure you have firebase-tools installed before running this command. You can install firebase-tools using the following command.

    $ npm install -g firebase-tools
              

    [Source: audience-app/README.md]

Top-Level Directory Explanations

audience-app/ - This directory contains the files for the audience-facing part of the application. It includes HTML files for different pages, static assets like images, and configuration files for Firebase and npm.

audience-app/public/ - This subdirectory holds the publicly accessible files of the audience app. It includes HTML files for specific pages, images, and other static assets.

presenter-app/ - This directory contains the files for the presenter-facing part of the application. It includes source code, static assets, and configuration files.

presenter-app/build/ - This subdirectory holds the compiled and bundled files for the presenter app. It includes HTML, CSS, JavaScript, and image files.

presenter-app/src/ - This subdirectory contains the source code for the presenter app. It includes components, controllers, routes, styles, and utility functions.

presenter-app/tests/ - This subdirectory contains test files for the presenter app. It includes mocks, controllers, and declarations.