0.6.5 • Published 4 years ago

@tutorbook/error-msg v0.6.5

Weekly downloads
1
License
AGPL-3.0-or-later
Repository
github
Last release
4 years ago

Tutorbook Logo

Build Status Website Status NPM Version Maintainability Dependencies License Lerna

A PWA (Progressive Web App) designed to optimize the process required to get a student with a qualified tutor.

After discovering just how un-streamlined the existing process was at the Gunn Academic Center, I decided it could be much more efficient through the use of technology (previously, one would have to manually fill out and turn in a request form to the office and then wait for the AC Staff to match the student with the tutor). Now, Gunn and Paly students can request and message peer tutors from anywhere at anytime, track service hours using a phone or a school-issued laptop, hire professional at-home tutors when necessary, and connect with middle school students all from within our web app.

Read more about me and view the open source code here.

Contributing

We need help. To contribute to Tutorbook, either go through our issues or our Notion task page to find something that you'd be interested in working on. Then, checkout from develop and create a PR for whatever task you've been contributing to.

File Structure

Progressive Web App

Our progressive web app (PWA) primarily consists of 28 (and counting) subpackages (included in src/app/packages) managed by lerna that are webpacked into three files for distribution (included in build/app):

.
├── build
│   ├── app
│   │   ├── index.html
│   │   ├── index.js
│   │   ├── index.css
│   │   └── img
│   │       └── bot.png
│   └── favicon
│       └── manifest.json
└── src
    ├── lerna.json
    ├── package.json
    └── app
        ├── package.json
        ├── package-lock.json
        ├── webpack.config.js
        └── packages
            ├── app
            │   ├── index.js
            │   ├── package.json
            │   └── styles
            │       ├── cards.scss
            │       ├── chat.scss
            │       ├── profile.scss
            │       ├── search.css
            │       ├── user.css
            │       └── welcome.scss
            ├── dialogs
            │   ├── index.js
            │   └── package.json
            ├── render
            │   ├── index.js
            │   └── package.json
            └── templates
                ├── index.js
                ├── package.json
                └── templates.html

Marketing and Legalities Website

Our marketing and legalities website consists of 18 (and counting) subpackages that define Custom HTML Web Components that are used in build/index.html:

.
├── build
│   ├── favicon
│   │   └── manifest.json
│   ├── legal
│   │   └── index.html
│   ├── index.html
│   ├── index.js
│   └── index.css
└── src
    ├── lerna.json
    ├── package.json
    └── site
        ├── package.json
        ├── package-lock.json
        ├── webpack.config.js
        └── packages
            ├── site
            │   ├── index.js
            │   ├── index.scss
            │   └── package.json
            ├── styles
            │   ├── search.scss
            │   ├── reset.scss
            │   ├── general.scss
            │   └── package.json
            ├── legal
            │   ├── index.js
            │   ├── index.scss
            │   ├── index.html
            │   ├── package.json
            │   └── assets
            │       ├── html
            │       │   └── terms.html
            │       ├── md
            │       │   └── terms.md
            │       └── generate.js
            └── cta-link
                ├── index.js
                ├── index.scss
                ├── index.html
                ├── package.json
                └── templates.html

Developing

To set up a development environment for and to contribute to the Tutorbook web app:

  1. Follow these instructions to install nvm (our suggested way to use Node.js) on your machine. Verify that nvm is installed by running:
$ command -v nvm
  1. Optionally (if you use Vim as your preferred text editor), follow these instructions on setting up Vim for editing JavaScript.
  2. Run the following command to install Node.js v10.10.0 (our current version):
$ nvm i 10.10
  1. Ensure that you have recent versions of Node.js and it's package manager npm by running:
$ node -v
10.10.0
$ npm -v
6.13.3
  1. Make sure that you have Lerna installed by running:
$ npm i -g lerna
  1. Clone and cd into this repository locally by running:
$ git clone https://github.com/tutorbookapp/tutorbook.git && cd tutorbook/
  1. Then, you'll most likely want to branch off of develop and cd into our app packages by running:
$ git checkout -b $my_branch && cd src/app/packages
  1. Follow the instructions included below to start a webpack development server (to see your updates affect the app live).
  2. From there, cd into your desired package, make your changes, commit them to your branch off of develop, and open a PR on GitHub.

Start a Development Server

To webpack the app packages and see your changes live, run the following commands from src/app/:

$ lerna bootstrap
$ npm run dev

To start a development server, first install Google's Firebase CLI by running:

$ npm i -g firebase-tools

Then, run the following command from anywhere in the repository and visit http://localhost:5000/ to see your version of the app:

$ firebase serve --only hosting

Note that you might get an error that says you are unauthorized to acces our Firebase project (tutorbook-779d8). If you do, that means that you haven't been added and that you should message Nicholas Chiang (@nicholaschiang on GitHub or via email).

Build for Production

To webpack the app packages for production, run the following commands from src/app/ (this assumes that you've already installed our dependencies and such):

$ npm run prod

Code Format

Tutorbook uses Prettier to enforce consistent code formatting throughout the codebase.

A pre-commit hook is used to format changed files found on commit, however it is still recommended to install the Prettier plugin in your code editor to ensure consistent code style.

Documentation

Our documentation (what you're probably reading right now) is automatically generated by JSDoc 3 using our Minami theme.

To remove and re-generate our documentation, run the following from the root of Tutorbook's repository (this assumes that you have JSDoc installed):

$ make dev
$ make docs

To update our Algolia Docsearch index, first follow these instructions to setup your machine (we do not include the .env file with our Algolia keys in this repository for obvious security reasons) and then run:

$ sudo make search