Skip to content

Client Server User and Tab Management

xMartin edited this page Jul 4, 2014 · 2 revisions

Client-Server User and Tab Management

Goals

  • It should be simple join a tab (editing and viewing) no matter if you used Grouptabs before
  • It should be possible to synchronize the tabs you're part of across clients

Assumptions

  • Participants do not need to have any metadata, only an arbitrary nickname unique within the tab

Concept of IDs

Story

Martin loves to play badminton with a group of friends. The person that arrives first usually pays for the court and Martin offers to keep track of the shared expenses. He opens Grouptabs on his smartphone and creates a new tab that he calls "Badminton". For a few weeks all the saved transactions are stored locally on his phone. One day one of his friends wants to check the balance on his own device and asks if it is possible to help out with tracking expenses. Martin decides to upload the tab to the Grouptabs server and sync it with the client whenever he is online and uses the app. He clicks the "connect with server" button next to the tab "Badminton" on the app and receives a confirmation message that this tab is now available on the server with the ID "c5nq1ayy1g72pbwq" or the URL "http://grouptabs.net/tabs/c5nq1ayy1g72pbwq". He tells his friends to run the app, hit the "connect with existing tab" button, and enter the ID that he sends separately in a chat message. Everybody using this tab can now collaborate and sync changes.

Martin also sends an email to all the other members of the badminton group containing the URL to the tab. Some people might not care for an installed mobile app but rather just use any browser. When clicking the link Grouptabs opens in the browser and shows the tab ready to be managed. Data is stored locally in web storage and synced to the server. If the user opens another Grouptabs URL that respective tab is added to the browser's local data.

Tech

Every tab on the server has an ID. A tab may have a label given by the user of the app independent of the server. A tab does not have the notion of a user (only of participants).

User Data

Story

Martin loves using Grouptabs and after a few months he manages five different tabs. Sometimes he'd like to use Grouptabs on his laptop, too, so he runs the app there. He doesn't feel like importing five tabs separately so he creates a user account on the server and adds the tabs he has on his phone to that account. Now he is able to log into his account with any browser and automatically syncs all his tabs and settings like custom labels for the tabs.

One of the group that used to manage the tab via browser now also wants to install the mobile app. She is advised to create a user account in the browser to save all the settings (tab ID(s), tab name(s)) to the server and then log-in with this account in the app.