Code Monkey home page Code Monkey logo

wxyc-dj-hub's Introduction

Contributors Forks Stargazers Issues MIT License

WXYC DJ Hub

A new flowsheet for WXYC, built on Vue.js.
Report Bug / Request Feature

About The Project

This project is under construction.

The purpose of this project is to revamp the current playlist logging infrastructure at WXYC-Chapel Hill 89.3FM. The project will also serve as an educational resource for other WXYC members to contribute to and improve the systems they work with on a regular basis. The frontend portion of the project will remain open-source, with a private database. Using Directus, one can easily mirror many DB systems.

Features

  • New flowsheet (playlist logger) that ensures a clean data pipeline to our external API with drag and drop, entry search and autofill, quicker load times, and single-page editing.
  • Allow users to report station equipment issues and request new music for rotation.
  • Provide user profiles to easily reference shows to DJs and provide user stats.
  • Provide a localized area for station resources such as PDF manuals and station tutorial videos.

Progress Screenshot as of 06/04/2022

WXYC DJ Hub Progress Screen Shot

(back to top)

Built With

(back to top)

Getting Started

Prerequisites

You'll need node and npm installed.

Installation

  1. Clone the repo
    git clone https://github.com/robotpsychology/wxyc-dj-hub.git
  2. Open two terminals, install NPM packages, and run each npm script
    cd client
    npm install
    npm run client
    cd server
    npm install
    npm run server

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

wxyc-dj-hub's People

Contributors

robotpsychology avatar

Stargazers

Forrest Eli Hurley avatar Jake Bromberg avatar

Watchers

dvd avatar  avatar

Forkers

jakebromberg

wxyc-dj-hub's Issues

Automatic Breakpoint suggestions

There would still be an option to manually insert a breakpoint. These will show up ghosted out on the playlist timeline when the hour strikes. Also an alert when DJs submit playlists that they may be missing breakpoints if it's passed the hour and their is not one.

Would have to account for:

  • Different time zones (remote DJs)
  • Changing ghosted out element to actual entry
  • ChronOrderID being changed when inserted already solved with swapID function in FlowsheetEntries.vue

Add Help/FAQ/Contact Section

Help section on the nav bar that presents a tutorial/resource links such as a link to the documentation for this repo.

Create a playlist and artwork data backend service

This will aggregate playlist and artwork data so the client only needs to make two requests for both. Currently, the client can make up to five requests for this information.

The backend service can also provide links to the track on other services: Spotify, Apple Music, Google Play, Pandora, Bandcamp, and others.

This should exist as its own project. Either we should extract all the webby bits in the current app so that it can run in a Linux box without the presence of Foundation, or we start from scratch on a server platform that doesn't use Swift (Python and Java come to mind, with whatever server frameworks they use; I'm just a mobile engineer).

@jakebromberg - WXYC/wxyc-ios-64#48

Data structure proposal:
Artist

{
    "establishedYear": Integer Date year,
    "originCountry": String,
    "artistBio": String,
    "artistImage": String URL,
    "releaseURIs": [Array of release String URIs],
}

Release

{
    "releaseYear": Integer Date year,
    "releaseBio": String,
    "releaseImage": String URL or downloaded image,
    "releaseGenres": [Array of genres String],
    "artistURI": String URI,
}

Offline Mode

Allow offline persistence functionality which caches entry data. This may mean turning this project into a progressive web app (PWA), which would also be useful for mobile/tablet compatibility.

Recreate/Enhance Flowsheet Data Structure

Data for WXYC entries that will be directly linked to library data unless the playcut type is "other". Playcuts entered as a "library" type will but do not have a corresponding entry in the library DB will be marked for observation. They might indicate physical media in the station that is not in the library DB.
Most fields will be required. Must have djName or showName. chronOrderID is still useful for reordering of flowsheet order.
Playcut will contain a URI for externally fetched data about the playcut from a separate backend service.

Data structure proposal:

{
"id": Integer, 
"hour": Integer UNIX Time Code (maybe alternative),
"chronOrderID": Integer (always incrementing) 
"djName": String,
"showName": String,
"entryType": String ["playcut", "talkset", "breakpoint"],
"playcut": {
   "playcutType": String ["rotation", "library", "other"]
    "rotation": Boolean (maybe redundant but good for old structure consistency?),
    "request": Boolean,
    "externalMetdataURI": String URI,
    "playcutMetadata": {
        "songTitle": String,
        "labelName": String,
        "artistName": String,
        "releaseTitle": String,
         },
     },
 }

Revise README.md

The current file has boilerplate text and broken links and images. Also, it should provide more detailed instructions on installation and standing up a server and interacting with the client.

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.