Skip to content
qit: Listen to programming podcasts by topic
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Sep 17, 2018
qit-api - unifying docker-compose Feb 4, 2019
website idk how but i found more. next thing i need to do i learn to alter gi… Feb 22, 2019
.DS_Store added unqueueEpisode infrastructure Oct 6, 2018
.all-contributorsrc
.dockerignore various docker fixes Jan 7, 2019
.editorconfig
.env various docker fixes Jan 7, 2019
.gitignore Merging master, conflicts Jan 13, 2019
.travis.yml - unifying docker-compose Feb 4, 2019
Accessibility-(a11y)-Testing.md
Adding-new-podcasts.md Moving wiki to my folder, refactor to setup and correct documents. Jan 10, 2019
Glossary.md Glossary update Jan 18, 2019
Home.md Documentation! Jan 11, 2019
LICENSE Initial commit May 24, 2018
Podcast-Feed-Loader.md Moving wiki to my folder, refactor to setup and correct documents. Jan 10, 2019
README.md Update README.md Feb 22, 2019
docker-compose.local.yml - unifying docker-compose Feb 4, 2019
docker-compose.yml - unifying docker-compose Feb 4, 2019
jesttesting.md
package-lock.json
package.json
privacy-policy.md Adding cookie banner and privacy policy links, fixes #267, #268 Jan 13, 2019

README.md

qit logo

All Contributors Cypress.io tests Ruby Version Rails Version JavaScript Style Guide License: MIT

Build Status Maintainability Test Coverage

Netlify Status

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.

NEW Before you run this program

Since we are improving a lot of the features, the most simple way to get the app to work is to download and install Docker on your machine. This only needs done once, and is the best way to enjoy all of the options. The specifics for the software are on the pages, and should be simple to follow.

If you do not work in the software field, simply installing the program correctly should be enough to allow you to run the local version.

Installation Instructions

Install Docker Desktop

If your system does not support docker

You will need to download and install Ruby and Postgre. Warning! No further instruction exist at this time for this method.

Running locally:

  1. Create a fork of the qit repo.
  2. Clone forked repo.
  3. Run following commands in the commandline of your choice
    # Start Postgres and the API
    docker-compose up -d
    
    # Setup pre-commit hooks
    npm install
    
    # Setup front-end
    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
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)

# to start specific service
docker-compose -f docker-compose.yml up -d website (or any other service name from docker-compose)

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

Huge thank you to everybody that has worked on this project!

Aaron Clawson
Aaron Clawson

💻
Adam Lantz
Adam Lantz

💻
Aditya Kolla
Aditya Kolla

💻
Arlene
Arlene

📖 ⚠️ 💻
Artyom Emelyanenko
Artyom Emelyanenko

💻
Ben Steward
Ben Steward

💻
Brandon Lyons
Brandon Lyons

⚠️
Chris
Chris

💻
Dave Follett
Dave Follett

💻 🚇 📖 ⚠️
Gary R Krause
Gary R Krause

📖 ⚠️ 💻
Joe Zack
Joe Zack

💻 🎨 🚇 📖
Joseph Dollahon
Joseph Dollahon

📖
Mikkel Madsen
Mikkel Madsen

💻 🚇
Nicolas Marcora
Nicolas Marcora

💻 ⚠️
Paul Mcilreavy
Paul Mcilreavy

💻
Sung Kim
Sung Kim

📖
Vladimir
Vladimir

🚇 💻 📖
You can’t perform that action at this time.