This repository contains the multiplied by one app. It contains a React PWA connected to a google firebase backend
It is recommended to join the Multiplied By One Developer Discord server.
The MBO app uses a number of libraries and technologies. It is currently a React Progressive Web App backed by a firebase backend.
Libraries used prevalently in ths repository are as follows:
To get started you will need to have installed:
- JDK 8+: This will need to be exported in you PATH environment variable.
- Node Version 16+: Recommended Install NVM and then run
nvm use
in the project directory
Make sure to install the firebase emulator (and required dependencies)
run the following to install project dependencies run following:
npm i
cd firebase/functions
npm i
Warning: This will terminate any processes bound to port 4000, 8080, 3000, 5001 and 9099,
Run the following command to start the stack:
npm run start
The frontend app should start on port 3000 and the admin on port 4000
To stop the stack you can press control+c or run in another terminal
npm run kill:firebase
Linting Guidelines: TBC Testing Guidelines: TBC
.
├── firebase
│ ├── emulator_data # Exported Emulator data used to bootstrap local dev env (Can be refreshed
│ │ └── [...] # using `npm run export:firebase`)
│ ├── firestore
│ │ ├── firestore.indexes.json # Firestore index configuration
│ │ └── firestore.rules # Firestore user access rules
│ └── functions
│ ├── index.js # Google Cloud Functions used by the app
│ ├── package.json # The dependencies for the cloud functions
│ └── package-lock.json # The locked versions of the dependencies for cloud functions
├── firebase.json # The Root firebase configuration file
├── package.json # Firebase App Dependencies
├── package-lock.json # Firebase App Dependencies at locked versions
├── public # Public directory for static assets
│ ├── favicon.ico # The app icon
│ ├── index.html # The html document the react app is mounted into
│ ├── logo192.png # Logo Used on android / IOS for the PWA
│ ├── logo512.png # Read Above
│ ├── manifest.json # Asset discovery containing information about how the PWA should look
│ └── robots.txt # Robot Crawling Rules
├── Readme.md # You are here :)
└── src # React App Code
├── App.css # Global CSS Styles
├── App.js # Main React App component
├── App.test.js # Tests (Currently not in use)
├── components # App Components
│ └── [...]
├── firebase.config.js # Google Firebase configuration (Handles Emulation toggles)
├── global.css # More Global styles ... Might need removing
├── hooks
│ └── [...] # Custom react hooks (Mainly used for data fetching)
├── index.js # Main react entrypoint JS File
├── logo.svg # Site Logo
├── pages
│ └── [...] # Page Level components
├── reportWebVitals.js #
├── routes
│ ├── AppRouter.js
│ └── AuthRouter.js
├── service-worker.ts # PWA Required Service worker definition
├── serviceWorkerRegistration.ts # Code related to registering the service worker
├── setupTests.js # Test JS Entrypoint
├── styles
│ └── fonts
│ └── [...] # Site Fonts
└── theme
└── [...] # Site Fonts