Mackenzie-Frey / brownfield-of-dreams

Brownfield of Dreams is a video tutorial platform in which additional functionality was built on an existing codebase.
https://brownfield-dreams.herokuapp.com/
1 stars 0 forks source link

README

Description

Brownfield of Dreams is a 10-day paired project during module three of four, Tuing School's Back-End Engineering program. Students received an existing "brownfield" code base, located at https://github.com/turingschool-examples/brownfield-of-dreams/projects/1, which is for a Ruby on Rails application that organizes YouTube content for online learning. Each tutorial is a playlist of video segments. Within the application an admin is able to create tags for each tutorial in the database. A visitor or registered user can then filter tutorials based on these tags. A visitor is able to see all of the content on the application but in order to bookmark a segment they will need to register. Once registered a user can bookmark any of the segments in a tutorial page.

Learning Goals

Our challenge was to building additional functionality on top of an existing codebase. Features included:

The project was meant to teach the experience of taking over existing code, wrestling with previous design decisions, dealing with technical debt, prioritizing unanticipated issues, and selective refactoring. From a technical perspective, the project introduced students to:

Schema

Database Schema

Project Board

The team organized their work using the GitHub Project Board below. Not all stories were completed. https://github.com/Mackenzie-Frey/brownfield-of-dreams/projects/1

Local Setup

To set up Brownfield of Dreams in your local environment with full functionality, you'll need accounts and API keys for YouTube, GitHub, GitHub OAuth, and SendGrid (if you want to send emails). The team used Figaro to store keys inside an application.yml file. Wherever you choose to store your keys, they should be set to the following variables:

'ENV[YOUTUBE_API_KEY]' = your_youtube_key
'ENV[GITHUB_API_KEY]' = your_github_key
'ENV[GITHUB_OAUTH_CLIENT_ID]' = your_github_oauth_client_id
'ENV[GITHUB_OAUTH_CLIENT_SECRET]' = your_github_oauth_client_secret
'ENV[SENDGRID_PASSWORD]' = your_sendgrid_password

Clone down the repo

$ git clone

Install the gem packages

$ bundle install

Install node packages for stimulus

$ brew install node
$ brew install yarn
$ yarn add stimulus

Set up the database

$ rake db:create
$ rake db:migrate
$ rake db:seed

Install and run MailCatcher, if you'd like to see test emails without sending real mail

$ gem install mailcatcher
$ mailcatcher

Go to http://localhost:1080/ to see your mail, when you send it

Run the test suite:

$ bundle exec rspec

Built Utilizing