Giter Site home page Giter Site logo

cbothner / readback Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 5.0 2.42 MB

The WCBN Database – Playlists, Schedules, DJs, and Trainees

Home Page: app.wcbn.org

License: MIT License

Ruby 53.58% JavaScript 8.44% CoffeeScript 2.14% CSS 0.74% HTML 7.44% Shell 0.01% SCSS 10.94% Haml 16.72%

readback's People

Contributors

cbothner avatar dctalbot avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

readback's Issues

Notify listeners when their favorite DJs are on air

Listeners could star their favorite DJs and sign up for reminders when that DJ is about to go on, even when that DJ is subbing. Could deliver notifications in any of a number of ways, including push notifications to mobile apps.

Depends on #5.

CORS for .wcbn.org domain

Request to whitelist everything under .wcbn.org domain

Specifically, I'm implementing a client-side infinite scroll for the playlist archive which requires this

Underwriting manager

Local businesses who are kind enough to donate in exchange for semester long bouts of thank you messages on air have told us they don't know when their contract expires. Given the semester to semester turnover of station staff, it's tough to remember when to follow up. Readback could keep track of underwriting contracts and send reminder emails on expiry.

This depends on #2

Can't install dependencies

yarn blows up when trying to download the fsevents binary that I'm guessing they removed from their aws storage

solving should just be a matter of updating dependencies, probably webpacker in particular

Functional signoff configuration panel

This needs to support complex recurring events, like those we would need for PSA signoffs. Very important for donor notification announcement sign offs that we would use for underwriting.

Cleanup after partial deletion of semesters

@dctalbot started cleaning up some semesters that were created in error but ran into some problems. Likely, the automatic destruction of dependent relations was aborted because some of the episodes had songs already, and

class Episode < ActiveRecord::Base
  has_many :songs, dependent: :restrict_with_exception

https://github.com/cbothner/readback/blob/master/app/models/episode.rb#L11

I jumped in after he'd deleted the Semesters and the FreeformShows, SpecialtyShows, and TalkShows that belonged to them. There were a bunch of orphaned Episodes that needed to be cleaned up because their nil show association was causing exceptions on DJ pages.

I cleaned them up like this:

episodes = Episode
  .joins("LEFT JOIN freeform_shows ON episodes.show_id = freeform_shows.id AND episodes.show_type = 'FreeformShow'")
  .joins("LEFT JOIN specialty_shows ON episodes.show_id = specialty_shows.id AND episodes.show_type = 'SpecialtyShow'")
  .joins("LEFT JOIN talk_shows ON episodes.show_id = talk_shows.id AND episodes.show_type = 'TalkShow'")
  .where(freeform_shows: { id: nil }, specialty_shows: { id: nil }, talk_shows: { id: nil })

# Sanity checked their timestamps
episodes.map(&:created_at).map(&:beginning_of_day).uniq # Aug 23, Aug 29, and Aug 31, 2021

# Tried this
episodes.destroy_all  # ActiveRecord::DeleteRestrictionError (Cannot delete record because of dependent songs) 

# Then forced the cleanup
episode_ids = episodes.pluck(:id)
episodes.delete_all
Song.where(episode_id: episode_ids).delete_all
SubRequest.where(episode_id: episode_ids).delete_all
Setbreak.where(episode_id: episode_ids).delete_all

Trainee login

  • Sign up for apprenticeships
  • Actually reflect progress in trainee management view without manual updating.

CORB error when fetching json from localhost in browser

I built the react native app and now I want to get it to run in the browser 🤓
But I'm getting a CORB error. I've actually never ran into CORB before, but can we try adding a Access-Control-Allow-Origin: * response header?

Allow DJs to upload their own images as profile pictures

  • Update the view to actually display the attached avatar.
  • Put an <input type=file> with opacity: 0 in a <label> with the image. Maybe shade the image and put an icon or “edit” text on.
  • Accept only image mimetypes (this is an attribute on the file input).
  • Implement direct upload and design some sort of progress indicator.
  • Connect it to AWS (we can actually set this up before getting the consolidated billing set up if we just get an account on free tier under the right email address).

Dynamic playlist page

  • WebSockets to display new song information without page reload.
  • Player widget—maybe with album art and other features from the app
  • Social features like starring a song, discussion? (Depends on #5)

Maybe written in React?

Library of previous shows in schedule builder

As it stands, previous semesters shows can only be copied at their current timeslot. Shows which are moving our more often re-create it from scratch. However if show information changes across semesters, there is no way to know that they are the same show. As it stands, previous semesters shows can only be copied at their current timeslot. Shows which are moving our more often re-create it from scratch. However if show information changes across semesters, there is no way to know that they are the same show. A catalog of previous semesters shows which could be copied into a new semester at any time slot would make this easier.

Incorrect sub request fulfillment notice

When someone takes a sub request, there is a flash message that says "You’ve signed up to cover for ___" but instead of displaying the asking DJ's name, it displays the fulfilling DJ's name

Trainee Sign-Up

Trainee sign-up form should be accessible to trainers designated by the Training Director

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.