Skip to content
open source web app built with React/Material-UI/Next/Express/Mongoose/MongoDB
Branch: master
Clone or download
Latest commit 2ba0df4 May 17, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cronJobs
webApp
.babelrc app's code Jan 28, 2018
.eslintrc.js app's code Jan 28, 2018
.gitignore app's code Jan 28, 2018
LICENSE
README.md Update README.md May 17, 2018
now.json app's code Jan 28, 2018
package.json app's code Jan 28, 2018
yarn.lock

README.md

Harbor

Open source web app built with React/Material-UI/Next/Express/Mongoose/MongoDB.

This app allows anyone with a Gmail account to receive payments for sending advice via email.

I am currently putting more time into this project: https://github.com/builderbook/builderbook

How can I use this app?

You can learn:

  • React/Material-UI/Next/Express/Mongoose/MongoDB boilerplate (up-to-date boilerplate)
  • Google OAuth API,
  • Stripe connected accounts, Stripe payments, Stripe invoices API,
  • Gmail API

Screenshots

Mentor settings page harbor-mentor-page

Mentor contact page harbor-settings-page

Customer checkout habor-checkout

Run locally

  • Clone the project and run yarn to add packages.

  • Before you start the app, create a .env file at the app's root. This file must have at least three env variables: MONGO_URL_TEST, Google_clientID, Google_clientSecret. We recommend free MongoDB at mLab.

    To use all features and third-party integrations (such as Stripe, Google OAuth), add values to all env variables in .env file: .env :

    MONGO_URL="XXXXXX"
    MONGO_URL_TEST="XXXXXX"
    
    Google_clientID="XXXXXX"
    Google_clientSecret="XXXXXX"
    
    Amazon_accessKeyId="XXXXXX"
    Amazon_secretAccessKey="XXXXXX"
    
    Stripe_Test_ClientID="ca_XXXXXX"
    Stripe_Live_ClientID="ca_XXXXXX"
    Stripe_Test_SecretKey="sk_test_XXXXXX"
    Stripe_Live_SecretKey="sk_live_XXXXXX"
    Stripe_Live_PublishableKey="pk_live_XXXXXX"
    Stripe_Test_PublishableKey="pk_test_XXXXXX"
    
  • Before you start the app, create a env-config.js file at the app's root. This file makes Stripe's public keys (keys that start with pk) available on client. Content of this file: env-config.js :

    const dev = process.env.NODE_ENV !== 'production';
    
    module.exports = {
      StripePublishableKey: dev
        ? 'pk_test_XXXXXX'
        : 'pk_live_XXXXXX',
    };
    
  • Start the app with yarn dev.

Deploy

Follow these steps to deploy Harbor app with Zeit's now.

  1. Install now: npm install -g now

  2. Point your domain to Zeit world nameservers: three steps

  3. Check the now.json file. If you are using dotenv and .env for env variables, no need to change now.json. If you make changes to the app, check up how to configure now.

  4. Make sure you updated ROOT_URL in package.json and lib/getRootURL.js files.

  5. Check that you have all production-level env variable in .env.

  6. In your terminal, deploy the app by running now.

  7. Now outputs your deployment's URL, for example: harbor-zomcvzgtvc.now.sh.

  8. Point successful deployment to your domain, for example: now ln harbor-zomcvzgtvc.now.sh builderbook.org.

You are done.

You can’t perform that action at this time.