dxe / adb

Activist Database Project
11 stars 5 forks source link

Build Status

ADB

Activist Database Project

Local development

Dependencies

The following dependencies are required to run this project and will be already installed if using the devcontainer:

Running this command is required to download all the go and node dependencies:

make deps

Set up mysql locally for development

If you are not using the devcontainer, you can use our Docker Compose configuration to run MySQL locally:

( cd server/ && docker compose up -d )
make dev_db

If you are using the devcontainer, just run this command in the container:

make dev_db

This command will log you into the database if you run the comman in the same container as the database:

mysql -u adb_user -padbpassword -h 127.0.0.1

(Note the syntax of the above command is to accept the password after -p without a space.)

Run

After downloading the dependencies, start the server:

make run_all

Access the web app at http://localhost:8080.

Format and test

Please run make fmt and make test before sending a pull request.

JS

This project uses webpack to compile our frontend files. Frontend files that need to be compiled are in frontend/, and the compiled outputs are in frontend/dist/.

The most convenient workflow is to run make watch in one terminal and make run in another one. Then your JS changes will automatically be built as you edit them.

Required environment variables for running in prod:

Optional environment variables

For signing people up to DxE's main mailing list & chapter-specific mailing lists (please reach out to tech@dxe.io to get an API key to sign people up)

For syncing with a chapter's internal Google Groups (for example, working group lists):

For sending emails via SMTP:

For sending surveys to event attendees:

Google Cloud client ID/secret for the Members page:

ipgeolocation.io key for finding nearby upcoming events based on a user's IP address (used w/ public-facing API):

Discord config for verifying accounts:

Google Places API Key for finding city information on public-facing forms