ne0fite / GigKeeper

GNU General Public License v3.0
1 stars 0 forks source link

GigKeeper

Setup

  1. Run ./install.sh
  2. Create a database and user for the application using your favorite client
  3. Run sql/GigKeeper-schema.sql on the new database
  4. Customize the values in config/config.json
  5. Run gulp db:seed:data to populate the database with test data.

See the config/config.json.sample for example config JSON.

Environment Variable Alternative

As an alternative to the config.json described above, you can provide environment-specific configuration in system environment variables. Environment variables take precedence over the config.json variables.

The config.json file works well with local development. However, environment variables are the preferred approach to a hosted solution.

NameDescriptionDefault
NODE_ENVThe node environment (development, stage, production)development
UI_PROTOCOLUI web server protocolhttp
UI_HOSTUI web server hostlocalhost
UI_PORTUI web server port8001
SERVER_PROTOCOLWeb server protocolhttp
SERVER_HOSTWeb server hostlocalhost
SERVER_PORTWeb server port8000
SERVER_EXTERNAL_PORTWeb server external port -- use when proxying node8000
JWT_SECRETJSON Web Token secret keyNeverShareYourSecret
DB_HOSTDatabase host namelocalhost
DB_PORTDatabase host port5432
DB_DIALECTDatabase host dialectpostgres
DB_NAMEDatabase namegigkeeper
DB_USERDatabase usernamegigkeeper
DB_PASSDatabase passwordgigkeeper
DB_LOGGINGSet to true to log SQL commands to the consolefalse
SMTP_ENABLEDSet to true to enable sending emailfalse
SMTP_FROM_ADDRESSEmail address that all system emails will come from
SMTP_SINGLE_ADDRESSSet to an email address to send all emails to a single address
SMTP_SERVICESMTP service supported by nodemailergmail
SMTP_USERSMTP username
SMTP_PASSSMTP password
GOOGLE_MAPS_API_KEYGoogle Maps API key

See the list of nodemailer's well know services for the SMTP service.

To generate a cryptographically strong JWT secret:

node -e "console.log(require('crypto').randomBytes(256).toString('base64'));"

Go to Google Maps API to generate an API key.

Schema Migration

Future updates may have a different schema than what you have installed. To prevent losing data, migrate the schema:

gulp db:migrate

If you are migrating anything other than the development environmnet, pass an env argument:

gulp db:migrate --env production

Usage

Start up the server with:

gulp

Wait until you see the [BS] message that says it is serving files from www.

Tests

Once the database is seeded with test fixtures, you can run the lab tests with:

gulp test

Getting Started

Once you have the application installed and configured, time to create an initial profile and user and get logged in. Execute the following gulp task to create a new profile:

gulp profile:create --email <email address> --password <password>

This will create a new profile and user with the specified email and password.

Navigate to the home page (i.e., http://localhost:8000) and log in with the email and password used above.

Navigate to My Account > My Profile to update your email address or password, as needed.

Navigate to My Gigs > Settings to setup your homebase location and gig defaults.

Navigate to My Gigs > Contractors to add contractors. These are the companies or people who book you to to gigs and pay you cheddar.

Navigate to My Gigs > Tags to add tags that you will use to categorize your gigs (i.e., Wedding, Private Party, Charitable Event, etc.).

Finally, navigate to My Gigs > Gigs and start adding gigs!

Support

Submit an issue at https://github.com/ne0fite/GigKeeper/issues to request enhancements or report a bug.

Pull requests are always welcome!

License

Copyright (C) 2017 Phoenix Bright Software, LLC

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.