Session-based MySQL to track visitors & information + Geolocation (temporary access to demo)

Job ID: 35079507

Budget: $30 – $250 USD

This is to provide a product demo to visitors, which will be time-based. They'll be provided a username/login that will be fed into the database every 10 minutes (this portion is not part of the project, we will set that up to update the "seats.")

Seats table:
There will be around 20-30 "seats" which consist of the ID, the geolocation city/region, and four pieces of other information (IP, port, username, password, this will be added from our end and table updated every 5 mins) plus whether the seat is being used or not by a visitor.

Sessions/log table:
Keeps track of unique sessions per visitor, session lasts for a day. We also need timestamp and IP address of visitor logged on page load. Also keeps track of whether or not they were provided a seat (0 or 1)

Timer/Frontend:
When user loads the page and a seat is successfully assigned, 5 minute timer starts. If no seat is available, timer does not start and they're queued. The frontend will run any third party geolocation service you wish to use (it's OK if it's subscription/paid) and determine the best available "seat" based on category and whether the seat is being used or not. Once seat is ready, it should load in third party script with the variables. The page will need variables from the database based on that specific seat assigned to the visitor, which will be put into another third party script (the IP of the seat, port, username, password.)

After timer runs out, the visitor's session no longer has access to the seat and sessions table gets updated to a "1" as in seat was used once, on further reloads of the page it no longer feeds the seat data, and displays "Demo over" instead.

The third party software used for the demo is noVNC (https://github.com/novnc/noVNC) but we can implement this portion, you just need to make sure it feeds in the variables from the table (IP, port, username, password) instead of static. It's OK to feed the password to where visitor can view it, since it auto resets (the auto reset is not part of the project, we do that and update table automatically every 10 minutes.)

That's it, pretty simple. I can provide more specific instructions as needed. I've worked with noVNC and IP geolocation before so I can help there as well, the most important part is the sessions/tables and timer/seats.
Related categories: PHP JavaScript AJAX Software Architecture MySQL