Dance API - Documentation
Document Description
The development documentation is designed to outline the development method and to explain some technical aspects.
Project Description
The Dance API “user endpoint” is meant for developers who want to build apps that can utilize all end user aspects of the dance technology.
Features & Functionality
Authentication
Connect with Calm ID to handle authentication, third party developers will also be able to connect with their existing user data but will be required to also use Calm ID.
Display
The display feature allows the app to display a variety of effects
Single Pixel
This feature will turn the phone screen into a single pixel meaning one color can be displayed on the entire screen.
Multi Pixel
This feature will split the screen into as many pixels as possible, enabling animation and more precise coloring of the screen. We may opt to update the single pixel feature rather than create a separate one.
Video
This will be a simple video player but without any controls for the user to play or pause. This may also be used in the future should we want to implement an ad feature. Any video will need to be chopped in the cloud and played on the device to create a mesh feature.
Emojis
This feature can be accessed by the user when navigation is enabled (meaning when we are not using the screen). The user can select an emoji or gif and hold up their phone (e.g. kisses gif)
Lyrics
Connect to Calm Music API to deliver lyrics, the third party can display in simple text or in a karaoke form.
Interactive
This endpoint will allow the developer to create or choose from a library of interactive games, trivia and other activities
Camera
The user can open their camera, add a filter and share to social media right from inside the Dance app. This will prevent us from losing user participation.
Music
This is the home of the artist. It is customizable to each artist and can be “downloaded” as a stand alone app.
Artists
Get all data about one or many artists
Media
Find the music, videos and all that is related to the artist.
Merch
Buy merch from the artist and pick it up on the way out or have it shipped to you.
Lyrics
Connect to Calm Music API to deliver lyrics, the third party can display in simple text or in a karaoke form.
Arena
This is custom to the arena; each arena can choose how they sell things and what features are available to the user.
Shops
Find shops that are located in the arena and get indoor directions or place an order and have it brought to your seat.
Map
Need to find the washroom? Open the indoor floor map.
Events
The arena can promote upcoming events.
Events & Tickets
The endpoint will facilitate events and buy tickets.
Commerce
The commerce endpoint will facilitate third parties to sell merchandise, subscriptions and more.
Preferences
A single and convenient place to manage every aspect of the app.
Account
The user can update their name, email, password and any account related information such as payment should we add the e-commerce feature.
Notifications
The user can set their notification preferences.
Help Center
If the user has an issue they can find articles to help them or send a message to the support team.
User Guide
If a user knows what they are trying to do but doesn’t know how, they can take a guided tour that will detail how and what to do.
Data
The data structure and all data information can be found in the Data section of the Dance Project - Development Documentation.
Dance
For the Dance app, our strategy is straightforward. We will first develop a single screen or in Flutter terms a “widget”. This will check for a data change in the database that relates to the color. Should there be a change, it will display that color on the entire screen. We call this widget “Pixel”. It is important to note that the pixels is only going to be allowed to receive feedback from Dance-console if there is a current live session. Once we have accomplished this (and it should be easy), we will then put Dance development on hold to complete Dance Console. We will then return to add authentication, preferences, navigation and, should we have time and budget left, development of additional features (e.g. camera filters, ads, etc.). For a roadmap with additional details see User Development.