/frontend-app-setup

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Build Status Codecov license

frontend-template-application

Please tag @edx/fedx-team on any PRs or issues. Thanks.

Introduction

This repository is a template for Open edX micro-frontend applications. It is flagged as a Template Repository, meaning it can be used as a basis for new GitHub repositories by clicking the green "Use this template" button above. The rest of this document describes how to work with your new micro-frontend after you've created a new repository from the template.

After Copying The Template

You'll want to do a find-and-replace to replace all instances of frontend-template-application with the name of your new repository. Also edit index.html to replace "Application Template" with a friendly name for this application that users will see in their browser tab.

Prerequisite

Devstack. If you start Devstack with make dev.up.ecommerce that should give you everything you need as a companion to this frontend.

Installation and Startup

In the following steps, replace "frontend-template-application' with the name of the repo you created when copying this template above.

  1. Clone your new repo:
git clone https://github.com/openedx/frontend-template-application.git
  1. Use node v12.x.

    The micro-frontend build scripts support node 12. Using other major versions of node may work, but is unsupported. For convenience, this repository includes an .nvmrc file to help in setting the correct node version via nvm.

  2. Install npm dependencies:

cd frontend-template-application && npm install
  1. Update the application port to use for local development:

    Default port is 8080. If this does not work for you, update the line PORT=8080 to your port in all .env.* files

  2. Start the dev server:

npm start

The dev server is running at http://localhost:8080 or whatever port you setup.

Making Your New Project's README File

Move the file README-template-frontend-app.rst to your project's README.rst file. Please fill out all the sections - this helps out all developers understand your MFE, how to install it, and how to use it.

Project Structure

The source for this project is organized into nested submodules according to the ADR Feature-based Application Organization.

Build Process Notes

Production Build

The production build is created with npm run build.

Internationalization

Please see edx/frontend-platform's i18n module for documentation on internationalization. The documentation explains how to use it, and the How To has more detail.