Virtual DJ Studio

Virtual DJ Studio Discussion => MyDjSongBook Web App => Topic started by: Justin on March 01, 2017, 12:49:33 PM

Title: New Discussion Board Section
Post by: Justin on March 01, 2017, 12:49:33 PM
To avoid confusion and keep things grouped, I've created this board just for discussion regarding the HOSTED MyDjSongBook app. I will have some updates soon, but I'm taking today off from working on it.

Latest news so far (some of this is repeated in other areas):

- Using Geolocation you can show where you are at. Soon you'll be able to fine-tune this by literally dragging the "pin drop" thing on a Google Map to ensure your location is reflected accurately

- Also using Geolocation on the user (customer) side, customers will be able to find DJs/KJs in their area currently working

- There's a mobile-friendly page for DJs to enable/disable the app, and set certain features using a mobile device. Major modifications (layouts etc) will require a PC to get the full feature-set but the basic day-to-day functions can be done with your phone

- Soon, I will be enabling the app integration into VDJ 7.7 for a limited number of "test users". Once all the bugs and kinks are worked out, I'll unveil it for everyone with the subscription option

- Later, I will release a stand-alone "indexer" PC app, that will index your music as well as pop up requests which can be drag 'n' dropped into any DJ software; the goal is to allow use of the server app without necessarily being a Virtual DJ Studio user

On that last point, to avoid piracy issues, the stand-alone app interface for the PC will refuse to work with Virtual DJ Studio. This is because, if you were a licensed VDJ user, you would naturally use the built-in feature. The stand-alone app would be intended for those wanting the web-app features but prefer a different DJ program. I believe I'll keep the subscription price the same in either case, and the indexer/background "listener" app would be a free download as part of the subscription.

In this way, I can expand the user-base of the web app to everyone, and hopefully become the "go to" place to find a local DJ or KJ, regardless of whether they are a VDJ user or not. I can see on a Saturday night or a holiday, customers looking to to find out where Karaoke is happening in their area, all pin-pointed on an interactive Google map :)

For the time being, my release goal is going to be at least a few days before St. Patrick's day. This way I (and other selected testers) can field-test the app and hopefully get all the kinks worked out by Wedding/Graduation season :)

Any feedback is welcome. At this point many features are functional, including uploading a "selfie" from your phone or PC, and at least on most phones you can select an existing photo or take a picture (some browsers just open the camera without the "gallery" option... still working on that).

At a future time I may give customers the option of creating a customer account (for free) which will let them save multiple pictures, recent searches/requests, and even communicate with other registered users - a social platform in itself. However the "anonymous" option will always remain as well, with no need to "log in" or "register" to send a request (unless a DJ requires registration).

You can see the main idea at with the "default" theme, and then a Spanish version (not ALL areas are translated *yet*) using a custom theme at (points to those who get the Simpsons reference ;) )

Also note that I've been getting carried away with using Emoji as normal font characters. Ever since I did the Spanish thing, I realized I had to change my server to utilize UTF-8 encoding (multi-byte characters) and Emoji is actually part of the global standard... hence the little headphones in your title bar right now :)  Even license emails have a microphone and headphones in the subject line. I was going to post something in true UTF-8 Emoji but these forums don't seem to accept the characters... I didn't write these forums, so there's apparently nothing I can do about that... but even Notepad shows the characters correctly...
Title: Re: New Discussion Board Section
Post by: Justin on March 01, 2017, 02:11:26 PM
One note: I decided to replace the map with a button, that once tapped THEN loads the map (in-place). No sense loading a map from google every time someone hits your "home" page. Turns out there is a 25k/day quota on map loads, otherwise I have to pay extra... but the map really only needs to show if the person (customer) doesn't yet know where to find you. Once they are at the party/bar/event, when they load the app they don't need a map :)
Title: Re: New Discussion Board Section
Post by: Justin on March 02, 2017, 01:56:16 PM
Okay, I am working on the geolocation today. So far, so good.

I have three DJs in the database (myself, and two made-up DJs set up in my general area)... so if you search using MY location:

You get the three DJs within 25 miles of my location (according to my PC which is about 5 miles incorrect lol). It centers on your location (but no marker), and markers show the nearest DJs, up to 26 (letters A-Z). I don't see any need to show more than that... yet...

Now, if you expand to (say) 2000 miles - an option I added in just for testing - you'll find DJ Fabio (I just used the center of an LA zip code for the coordinates) if you zoom way out or scroll way over :)

Note that like before, you have to tap/click the button to actually load and display the map. First it just shows a list - but often that's good enough. If you need the map, click it. But I don't want to load the map every time a user hits that page if they don't need it as it can end up costing me for excessive API access.

So it's coming along nicely. That page isn't linked anywhere yet but it's simply

I'm still trying to figure out the best "default" zoom. I may attempt to base it on how many DJs will actually show in a given square, and zoom in/out by default to make sure at least X and no more than Y djs are shown... I'm sorta looking at and other "store locator" sites for ideas on how to handle everything.

Anyway, check it out, try your mobile and/or PC and let me know what you guys think so far. I will be adding a "zip code" option since I already have a database of every US and Puerto-Rico ZIP code (so I don't need to use Google's API for that, I have my own list). It will just look up the lat/lon coordinates for that ZIP code and base its search on that if you don't want to use your "location services".

EDIT: I'm pretty sure the math is correct. I've tested by listing all cities within a XX mile radius rather than all DJs (just switched which database I was looking at), and got some cool looking results. It's actually not a circle, but a square... the math is simpler that way and much more CPU-friendly on the server... see attached for a couple samples. At 25 miles it's neat but if I look at every zip code within 100 miles east-west & north-south it's interesting how the pinpoints swallow up lake Michigan :)
Title: Re: New Discussion Board Section
Post by: Justin on March 02, 2017, 02:14:32 PM
Interesting note: in Microsoft Edge browser, first you have to enable "location" in the PC settings... then that browser is able to get a more precise fix on my actual location. Not sure how or what it's using, but that's scary... Chrome and Firefox both still show whatever they get from the IP address.
Title: Re: New Discussion Board Section
Post by: Justin on March 03, 2017, 10:11:34 AM
Further progress: I've simplified the "find dj" page now. I had used text boxes for inputting Longitude and Latitude for testing/developmental purposes, but that is all now hidden from the end user.

Clicking "Use Location" automatically (upon receiving the location from the browser) submits the form. Otherwise, you can type in a ZIP code in which a tiny submit button pops up (little check mark).

I had to google to figure out how to make a phone show just the number pad for input on the ZIP code field (instead of the full keyboard), so that makes it a bit easier as well.

So, use big brother ("Location" button), or type "90210" to see Fabio's mock-location, or "46303" to see my general area.

(I chose 90210 as I personally use that easy-to-remember zip code when estimating shipping for an eBay item; it's the furthest ZIP code I know off-hand from myself and basically gives me worst-case shipping costs, in the lower-48 anyway :) )

I'd post screenshots but the interaction is what sells it. Clicking "Use Location" shows "Please Wait..." while it either asks permission or obtains the coordinates, then it will actually display the longitude/latitude for a (ideally) very brief second while it reloads the page. Then you can click the "Tap Here to Display Map" button to show on the map. I still want to make the markers "clickable", probably just to take you right to that DJ's page. I could show a pop-up with more info (even profile picture of the DJ) but we're getting into territory where phone screens just can't handle that much info at one time an still look nice. So simplicity is going to be key here...

The "distance limit" technically isn't necessary since I limit the number of results, sorted by distance, to 26 max results anyway. However, regardless of how many entries are in the database, without limiting the search area, it would need to do a lot of floating-point calculations on EVERY entry before sorting by distance and limiting the number of results. So the "distance" limits the search area FIRST (defining a min/max lon/lat -- hence the square(ish) area rather than a circle). Keeping in mind I hope to have thousands of DJs each with potentially hundreds of customers - so my server is going to take a beating on a good night :)

* I say square(ish) because technically as you get closer to the poles, it will be more of a trapezoid
* Also, a square area is perfect because the MAP itself is a square (rectangle) shape, not a circle, so.... it's justified.

Sorry if that was too technical, but a 25-mile (initial) limit with 26 maximum total results should be more than adequate. I will remove the 2000 mile option later on... I doubt anyone will travel more than 100 miles to find a DJ - 25 seems to be a good default and most people probably won't bother ever changing that. They'll just click "Use Location" and go on with their lives :)

Also note that I changed my "dj username" to "jman" without the hyphen. I'm realizing most people will forget to type the hyphen, and depending on your phone (or which keyboard you are using, eg, Swype/SwiftKey etc) the hyphen may not be easy to get to. As a special favor to myself, I set it up to redirect the hyphenated version to the non... so the links previously posted all over the forums will continue to work as expected.

I think I will put a warning on the "create DJ username" page to that effect. Technically letters, numbers and hyphens are allowed in a (sub)domain name, but hyphens can cause confusion. I would just disallow hyphens, but El-Barto might not like that :)  I'll just warn subscribers that hyphens are hard for people to remember and (depending on the device) harder to type.

Enough rambling, back to work with me...
Title: Re: New Discussion Board Section
Post by: Fabio on March 07, 2017, 01:41:51 PM
Wow, this pretty cool!  I didn't get to test mos of your posts because I'm late to the party and by the time I tried them, the results are not showing which probably means you're working on it and things have changed from your original posts.  I'm glad you decided to do away with the initial map!

I just started a new bar/restaurant this past Thursday and so far they're linking my karaokebook but the manager did mention that three different people were confused on how things worked and kept asking.  He suggested I change the website to give instructions.  I'm making some changes to the current one, but can't wait to use this one.