📄 MySkiTool Vision & Business Plan
A high-level vision and plan for the MySkiTool system can be found here: MYSKITOOL HIGH LEVEL VISION / PLAN
🎥 SKISTREAM Servlet Overview
SKISTREAM (/skistream) is the servlet that handles communication between various management and viewing apps and recording devices.
It can be used to:
- Upload video files to the server
- Get information about available video files
- Maintain live information for recording devices (primarily GoPros, but expanding to include Blackmagic and gate cameras)
This includes 'active skier' metadata for each camera, as well as applicable lens, zoom, and stabilization parameters.
Active clients using this API include:
- BoatVideo App
- SocketIOClient Relay App
- GoProQuickAccess Page
- MySkiTool ExPoGo App
Relevant Documentation: GENERAL API DESCRIPTION /skistream SERVLET /skistream QuickAccess 'POST' API
📡 Socket.IO Messaging System
SOCKETIO is a message-passing system that enables real-time client communication without the need for polling.
Clients connect to a central server and send messages that can be:
- Broadcast to all connected clients
- Scoped to a specific "ROOM" so that only members of that room receive messages
The messages are JSON key:value pairs which allow for a flexible, structured protocol. Our implementation focuses on two primary message types:
- message – a command or informational message sent to another client
- response – a reply sent back from the recipient client to the original sender
This protocol is designed to evolve and scale. Family/team members can collaborate to define and extend the structure as needed.
Documentation includes the current API state as well as example message/response sequences: MySkiTool SocketIO API MySkiTool SocketIO Message Trace
Handling Video Skier Renaming
GoProName is a parameter in the metadata .TXT file, that identifies the skier for a specific Video
Explanation of the structure of the video's accompaning .TXT, and how to handle Skier renaming HOW TO HANDLE SKIER RENAMING FOR A VIDEO
Captured Video DateTime API
Date/Time Is a field in the MetaData .TXT file associated with a video file, that stores the Date/Time that the video was captured (Secs from 01/01/1970 captured/labeled as UTC time, but is actually the local time where the video was captured
Document that describes how to handle Date/Time Date/Time API
GitHub 'COMMIT' Process
GITHUB is a system to save a snapshot of code, so that it can be insatlled and run in another computer, as well as allow for multiple snapshots to be saved, so the owner can revert to prior versions if needed
Trace of a session to setup a folder for GitHub 'REPOSITORY' GITHUB REPOSITORY SETUP