Jams is a collaborative surey tool that gauges consensus around a series of sentences to which the participants can themselves contribute as well. It is being built as a Red Badger bench open source project.
A deployment can be currently found here: https://elated-austin-ae1db6.netlify.app/
This is broadly the tech stack the project is using:
- Next.js (bootstrapped with
create-next-app
) - NextAuth.js for abstacting our chosen authentication provider (Auth0)
- yarn for dependency management
- Chakra UI as a component library
- Github Actions as CI/CD
- Jest for testing
- Prettier for code formatting
The current setup uses accounts/tenants configured with the following services:
- Auth0 as the authentication provider
- Firebase Firestore as a data store
- Netlify for deployment
The free tiers on all these services are adequate for low traffic deployments.
-
You will need to have Node installed (v14 is fine)
-
Install yarn:
npm install -g yarn
-
The project expects a
.env.local
file with the following keys set:AUTH0_ISSUER_BASE_URL
- Auth0 tenant URLAUTH0_CLIENT_ID
- Auth0 app ID (should be a Web application)AUTH0_CLIENT_SECRET
- Auth0 app secretNEXTAUTH_URL
- Redirect URL for NextAuth. Probably http://localhost:3000 for local developmentFIREBASE_DB_URL
- URL of your Firebase DB
Check .env.example for some example values.
-
To authenticate API requests with Firebase, you'll need a service account key on a
/secrets
folder. After getting this file from Firebase run something like:mkdir secrets mv ${downloaded_file_path} secrets/firebase_admin_credentials.json
-
Finally, run:
yarn install yarn dev
The site will be running on http://localhost:3000.
We're currently deploying using Github Actions. Our CI pipeline expects to find the following secrets set:
AUTH0_ISSUER_BASE_URL
- Auth0 tenant URLAUTH0_CLIENT_ID
AUTH0_CLIENT_SECRET
NEXTAUTH_URL
- canonical URL of the deployed production site (used for redirect after auth)FIREBASE_DB_URL
FIREBASE_ADMIN_CREDENTIALS
- a base64 encoded version of the service account jsonNETLIFY_AUTH_TOKEN
- (optional) for deploying to Netlify through Github ActionsNETLIFY_SITE_ID
- (optional)
The software is currently at MVP stage, contributions welcome!