qit: Listen to programming podcasts by topic
Clone or download
THEjoezack Merge pull request #271 from ArleneAndrews/master
New test and updated documentation
Latest commit 05de84e Jan 14, 2019

README.md

qit logo

Build Status Cypress.io tests JavaScript Style Guide License: MIT

qit: Listen to Programming Podcasts by Topic

qit...get it? get it? Like...Queue I.T.!

Ok so yeah, the title needs work, but the idea is to let programmers find and listen to podcasts by topic.

Check out a preview here: https://qit.cloud

Running the website

The website is a Progressive Web App built on ReactJs that uses styled components.

Running locally:

# Start Postgres and the API
cd qit-api
docker-compose up -d

cd ../website
npm install
npm start

Running in "production:

Well, that's a bit complicated right now. The website is in netlify, the API is hosted in linode, the search engine, the podcast-feed-loader is a scheduled serverless function, the proxy is in heroku, and the db is in elephantsql. Phew!

More on how to get this setup...later.

As for what settings are available to you, there are a bunch of env variables to know about. Everything works with the defaults, but these provide greater control and optional features. These are available for the site:

Website

REACT_APP_BASE_SEARCH_URL
REACT_APP_BASE_API_URL || 'http://localhost:3005/api/v1',
REACT_APP_CORS_PROXY || 'https://cors-anywhere.herokuapp.com/',
REACT_APP_MAX_SEARCH_RESULTS || 200,
REACT_APP_SEARCH_API_KEY || '18EA821D408444FCF3DC3EC4F3790FEC',
REACT_APP_PLAYBACK_RATES
REACT_APP_AIRBRAKE_PROJECTID
REACT_APP_AIRBRAKE_PROJECTKEY

API

You can see what is available for the api in the qit-api/production-setup/.env file

Podcast Feed Loader

Check out the podcast-feed-loader project for a listing there.

Linting the React website

This website uses the Standard style guide, you can run the linter with the command below but we'll also zap you with a pre-commit hook before you check any semi-colon in.

standard --fix

E2E the React website

With the Dev Server running

To run cypress interactive mode, run the following commands:

cd website
npm run cypress:open
<click run all tests on the GUI>

To run cypress headless mode, run the following commands:

cd website
npm run cypress:run

Without the Dev Server running

cd website
npm run local:e2e

Vladimir`s version of docker

Before running dockers, run

docker network create codingblocks

so that in future containers are able to see each others, within this network

Spin docker containers

Go to desired folder.

# test docker enviroment bindings before creating containers
docker-compose config

# start local development
docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d

# start regular docker
docker-compose build && docker-compose up [ OPTIONAL ] -d (if console is not needed)

Command to stop container:


# to stop containers
docker-compose stop

How can I add a new podcast?

The search engine gets populated via a different github project, the QIT Podcast Feed Loader project.

Contributors