A social app for social people made by a not-so-social dev

Overview

Summary

This was developed in 24 hours for Major League Hacking 2018.

SpotiParty is a simple tool to facilitate the maximum amount of fun in any social situation, just like all of us fellow humans enjoy.

Motivation

Being a human just like all of you, I too enjoy a hearty weekend social gathering, and being a member of this grouping, I felt the need to produce an application that would facilitate several key points in any human gathering:

  • Spotify Integration: It was important to me to include one the most fundamental social gathering tools: Music. Now you and all your fellow human companions can resume to "boogie" while also having a communal playlist from which to listen
  • Card Randomizer: Too many times have I arrived at a party and been deprived of a good-old-fashioned deck of playing cards. Now, a simple randomizer is built in using an online randomizer! All in one place!.

Technologies Used

Electron

The base application is written in JavaScript, using Electron to support the desktop client.

Node.js

Alongside the desktop client, there's a simple Node server to support LAN access to the app.

Python with Spotipy for Spotify API simplicity

The spotify integration is written in Python 3, and is called by an electron worker process.

Setup

  • Download all files
  • Install python and node. Use npm to install electron and any other dependancies listed
  • open up the source folder and from command line run 'npm start'
  • Desktop client should open, as well as online browser at 'localhost:5000'
  • To enable event info, go to roaming/appdata/spotiPy and create a file called sessioninfo.json with the only thing in it being the event ID

TO CONFIGURE SPOTIPY:

  • Edit 'post_song.py' and enter in your spotify details and the playlist id at the top of the file
  • run 'python post_song.py' with any two extra arguments surrounded in XXX (i.e. XXXsongXXX XXXartistXXX)
  • Browser should open. Copy the callback URL into the command line. This will create the authentication key required to make it run.
  • Now, the browser and client should accept post requests

To-Do to make this truly function (at all?)

  • Add proper facebook event support (I needed more time to properly handle Facebook's authentication for specific actions)
  • Add QR code support for event organizers to manage attendance
  • Add support for a payment system so that event organizers can setup transfers (Just so that if they buy 'supplies' for people, that they can get them back ASAP)
  • For the love of all that is holy, clean up the code, it's an absolute hack...

Built With

Share this project:
×

Updates