UNPKG

fullstrapp

Version:

Bootstrap a scalable full stack application with pre-configured: hosting, database, authentication, analytics, CI, CD, code templates, and issue templates.

61 lines (43 loc) 2.94 kB
## Deprecated I've turned this into a github template https://github.com/eddedd88/react-firebase-template --- <img src="https://raw.githubusercontent.com/eddedd88/fullstrapp/master/icon.png" width="200" /> # fullstrapp Bootstrap a scalable full stack application with pre-configured: hosting, database, authentication, analytics, CI, CD, code templates, and issue templates. This project tries to make as many opinionated choices as possible about the dev stack in order to quickly build a product that could sustain a significant amount of traffic/users. Tech Stack: - **React** front-end framework - **Firebase** for Hosting, Database (Firestore), Authentication, and Analytics - **Github Actions** to automate tests and deploys - **create-react-app** as a starting project which provides: testing (jest), linting and building - **material-ui** component library - **Typescript** for type checking [Take a look at this demo app created with **fullstrapp**](https://material-pwa-c6ebb.firebaseapp.com/) ## Table of Contents - [Getting Started](#getting-started) - Components - Signin: [firebaseui-web](https://github.com/firebase/firebaseui-web) pre-configured to use all signin methods - Issue Templates: Bug Report & Enhancement(User Story) - [Project Goals & Strategy](#goals) ### Getting Started #### 1. Install and create app ``` yarn global add fullstrapp fullstrapp myapp ``` #### 2. Setup Firebase - Make sure you have enabled **Firebase Analytics & Authentication** in your project - Copy your firebase config located at *Firebase Project > Project Settings > Firebase SDK snippet > Config* - Paste the firebase config to `src/firebase/firebase.ts` for the respective environment - Set your *Firebase Project* as *default* at `.firebaserc` #### 3. Setup Github CI/CD to automate deploys CI tests are configured out of the box, but to enable deploys to Firebase do the following: - Add firebase tools: `yarn global add firebase-tools` - Create a Firebase Auth Token locally: `firebase login:ci` - Add the Firebase token to Github as a *secret* called `FIREBASE_TOKEN`. You can add secrets at *Github Project > Settings > Secrets*. - Open the file `.github/workflows/ci.yml` and uncomment the lines `51-56` Every time a commit is pushed to github, Github will automatically run the CI tests; and every time there is a push to master Github will deploy the new version to Firebase. See the ci workflow in `.github/workflows/ci.yml` for more details. ### Goals & Strategy - To **launch an MVP** as fast as possible by using tools and templates to advance the MVP as further as possible with the least amount of work. Basically bootstrap the back-end and front-end of an app. - To iterate on features quickly by automating as many things as possible (tests, builds and deploys). The **CI cycles should take less than 5 minutes** - To be affordable for the hobbyist developer: **free until meaningful traction**