Skip to main content

CCC API - Development Documentation

Confidentiality

If you have not signed an NDA with Calm Experts or SafeDeposit you are not permitted to have access to this document nor any of its associated documents. If you are an employee or contractor with Calm Experts, you are bound by your Employment Agreement, NDA, our Code of Conduct and Development Guidelines. Make sure you have refreshed your memory on all these internal guidelines before reading this document or working on this project.

Definitions

Grey - The documentation is meant to be focused on the immediate development (the prototype) however in order to keep the documentation for future development consistent we will include any information in this document in a grey colour.
User Interface - is the process of building interfaces in an application or computer program, focusing on looks or style.
User Experience - is the process of creating products that provide meaningful and relevant experiences to users.

Functions and Features

The user interface is a breakdown of the screens the user can interact with and how the interaction would work. This is very detailed but still does not include all the details. Changes may take place as development progresses.

Splash Screen

The splash screen will provide apps the opportunity to inference their branding and give the app time to load.
Each app that is opened should show a splash screen, create a simple format and guideline for all app to upload an animation with the app listing and we will handel the splash screen

Intro

Show the user a few slides with information about the app and its benefits.

Authentication

Users will have the option to sign in using an email, phone and password or with Google, Facebook or their Apple account. The user can also select “forgot password”, register and set up two-factor authentication.

Onboarding

We will take the user through the onboarding process, this process will collect all the data we need to get the user set up.

Terms of service

In the first step, we will get the user to read, understand and agree to the terms and conditions.

Permissions

We will ask the user to access their camera and other permissions.

Bank validation

We will ask the user to add a bank account, credit card or any other form of payment.

ID verification

We will ask the user to upload an ID and verify that it matches the connected accounts.

App guide

We will take the user through the app and show them how it works.

Intro

Also library system but customized to Calm Commerce
UI: 13' 6'

Authentication

Library
UI: 13' 6'

Onboarding

UI: 13' 6'

Home / Mini Board

Home is like a mini dashboard, it will show data from all stores but will be limited to Calm Commerce data
UI: 13' 6'
Mock Home
Before the user has created any stores each widget will display a banner
UI: 13' 6'

Tabs

Products

Use the Products Tab and filter to have all products across all stores.

Stores

Here is where the user will manage their store(s), simply list all stores

Mock Stores

When there are no stores show a large banner and the option to create a store

Create

User the create widget and utilize the following fields
Name
Category

Open

The user will click on a store to open, here is where they get greater control, all the noise of the other stores are gone. The user will have two ways to interact with the store, a Mini Board* and Tabs**

*a Mini Board is a modified version of the Dashboard that can be used with the Boards API

**Tabs are part of the Navigation and Navigation API

Mini Board

Tabs

Products

User the products tab and filter by products in the currently opened store

Orders

Analytics

Channels

(Each Item has a URL so that crawlers etc can work without interruption when settings are changed, the restaurant can set a default platform (facebook, thier own website etc) when the item is clicked it’ll redirect the traffic.

Use the items feed api

Facebook Store - Menu Console
Facebook Messenger - Menu Console
Facebook Messenger Bot - EasyEat
Facebook Page - EasyEat

Google Search - Menu Console + EasyEat
Google Shopping - Menu Console (+ EasyEat)
Google Images - all
Google Assistant - EasyEat

Fiscal Menu -
Digital Menu - can be used to display menus on a website or to allow customers oprder thrugh a url or nfc tag in store. Users can choose from a variety of templates or design their own with HTML.

Alexa - EasyEat

NFC Banner
Each banner will have an ID and a programed URL
The restaurant will scan the first time and will land on a setup page, they sign in and select a location if there are more than one, the restaurant can leave to open in the default platform or select a platform (none service platforms only, FB, website or app… not just eat, uber eats etc)
Every time it’s scanned the end user will be directed to the menu of that location, on the defaul
We will offer addon banners for services

1 load URL
2 check for available app(s), let the user choose if there’s more than one, if no apps are available try instant app (easyeat sign in by default but user can choose others) if not load the web page in a custom chrome….)

Here the user can see and manage where the store is selling, these are sales channels, amazon, shopify, page*, Uber Eats, Google Maps, Google Shopping and others

*Page is a website builder, a more advanced version of Theme

Store Preferences

Store preferences is where the user can change any of the information provided in the create process and more.

Name
Categories

Choose what category this store belongs to (e.g. food, fashion, etc.)

Assets

Connect the assets associated with this store from accounts that are already connected to the account or add accounts to the system.

Access

The user can add users from ‘system users’ meaning users who already have access to this company and app, an invite can also be performed but that takes place on the system level and access is granted only after the user is added to the system.

Danger Zone

This is where the user can close or delete the store. The difference between the two is, close allows the user to still see the store as normal but it is “closed”, no data is pushed out and various other limits but all data there still kept safe and accessible, the store can be reopened at any time.
Delete will permanently remove the store and all its data and can not be udon after 30 days. When a user deletes a store, sets a countdown for 30 days, in this time none of the data or store can be accessed or edited, the user can cancel the deletion.

App Preferences

Affiliates

Invite other businesses and earn, see pending and accepted invites, earnings and more

Developer

Get developer access for easier setup for clients. Link with affiliate to auto add clients as affiliate

Access & Permissions

User Story: Tom want to add Jason to his store, jason is a friend who suggested some changes, he does not work for ABC Fashion, Tom goes to the app preferences and enters jason's detainles (name and email) then is prompted to assign permission, because jason is not part of the company tom assign permission to only view the ACDC Store and none of the other store or any company details.
Logic: Regardless of what level permission a user had, the connection always happens at a company level even if the user has no company permissions. Access & Permissions are managed at Company Preferences but the Access & Permissions tab can be used for quick access
UI: 13’ 6’ Jira

Accounts & Assets

Eric (admin user) has five accounts connected to Globe (company) some of which have a series of assets, Eric can choose what assets to attach/associate with this app.

There are many types of assets,

Channels

This is an asset that is meant to sell, many assets can have the tag ‘sales’ but only an asset that allows the store to sell through thor platform, apps, etc can have the channels tag. A channels can be setup the usual way, through an API connection, a channel can also be setup within the platform, a user can create a store, give it a name and rather than adding their own products they can request to become a channel and start accepting products from other stores, this is usually done when the store is connected to a customized marketplace type of app. The store can set a default price or percentage of sales, and/or set per product. If the API is used to facilitate a sales that the store is charging grater then 5% then Calm Commerce will charge 1% of that sale.

This is where the users can add return and privacy policies and other legal disclaimers

Delivery & Shipping

The user can set a distance and rates, where delivery is available vs shipping.
Eric has a restaurant

Schmidt has a chain of restaurants

Phaisal sells shoes out of two warehouses, one in Europe and one in America.

Payments, Currencies & Taxes

Languages & Translations

Standers & Formats

The user can set the time zone or leave it the company default, set a unit system, default wait, calories and more

Store details
Name address

Shipping
Policies
Billing
Payments
notification/communication

Core
This is what will handle all common functions and data such as make requests from platforms like shopify, send our data to requests being made by platforms etc. this will be for all data regardless the app (so long as it is commerce related, we will later have business core for other data)

Calm Commerce
This will be the main commerce app but won’t have any functions other than serving as the hub for all things commerce, the dashboard and all general settings will be managed here

Theme
This document covers all about theme, the app is simply to manage the theme of the app and website

Products
This app will help users manage products not only on themes but everywhere, facebook, instagram, etc

And many more

  1. Landing Page

  2. Splash Screen

  3. Intro

    This page will have a few slides showing the benefits of signing up

  4. Authentication

  5. Onboarding

    A step by step process to get started, company name, first app, etc

  6. App

    Here is where the user will manage their app/site. This is a glance at all data related to the app, it is very similar and in some cases the same as the dashboard but filtered to data related to the app that is selected.

    1. Create

      The user or API should provide as much details as possible about the app being created

      1. Name*
      2. Category*
      3. Colores
      4. Mobile, Web / iOS, Android, web, etc
      5. Connect to platform
      6. Choose billing
      7. User access
      8. Assets
    2. Cards

      Similar to the dashboard we display data in the form of widgets, in some cases we can reuse widgets from the dashboard and filter it’s data (should the developer allow for that)

      1. Channels

        Show the user what version each channel is on by percentage

      2. Analytics

        Connect an analytics sdk to each app and the theme app then display a summary of the data here (display the detailed data in a future app)

      3. Alerts

        Request all important notifications from the Notifications API (that we will create soon)

      4. App Setup

        We will keep track of what data has already been provided and show the user what is missing / left to do, this should encourage the user to provide data, the more data the better we can serve the user.

    3. Here is how the user will access additional data and features, navigation is divided in four parts, here we will only focus on the top right corner “Tabs” as this is the only part that applies only to this page.

      1. Details

        All the app's details that was gathered in the create process can be viewed and edited here.
        1.

      2. Preferences

        Here is where the user sets preferences for the app, domains, SEO, connected assets and more

        1. Store

          If no stores are connected the user will be asked to connect one at witch point the users will be directed to the settings page, if store are available it will show and it will be just one click to connect, this works the same way as assets

        2. Unpublish

        3. Delete

      3. Domain

        The user can take the domain controls a little deeper, setup redirects and more, the user can also open the Calm Domains app (coming later)

      4. Channel

        Channels are release control, some themes may have customizations per channel, when punishing or updating a theme the user can select what channels to push to.
        By default we will publish to our own play and apple accounts however the user can (pay extra or subscribe to a plan to) publish to their own account.

  7. Settings

Home / Mini Board

Balance

We will show all accounts in a card summary view where the user can see the balance of each account and tap on it to open and see all details related only to that account.

Active

Here we will list all the active Deposits and disputes, the user can tap to expand and see all details related to a deposit or deisput.

Connections - Alpha Two

Show connections with witch deposits happen most frequent and most in total, when the user taps on a contact, start creating a deposit to that contact as User B. the user can also select “see all” and will be linked to the open contacts section in the create page.

History

Show all historic deposits. The user can select a deposit to see its details and repeat the Deposit or start a dispute.

Create

This is where a user can create a deposit of any kind, send, request, withdrawal or move funds in any way.

Deposit

Request

User A can send a request to User B or a business using email, phone number or username. User A can set the terms of engagement ‘Deposit Agreements’, a date for the funds to de released or a date to return the funds if the Deposit Agreements were not accepted by user B or if User A or User B have not accepted to complete the transaction. The user will select a payment method. Finally, the User will confirm the transaction. Users can cancel requests.
If a Dispute has been created the funds will not be returned until it is reloved.

Send

User A can initiate a transfer to User B or a Business and can set the terms of engagement. When a user is sending they can set the terms of engagement. Users can cancel transfers.

Receive

User B can agree to terms, once agreed to all terms only then can the user accept the payment/accept a payment request or reject.

Terms of engagement

The user can choose from a list of template terms or create their own, choose a top category (car, electronics, etc) then a subcategory and specialized terms (e.g. how many seats, what condition it’s in, etc).

Transfer

A user can move funds from one of their own accounts to another of their own accounts. A user can select whether they want to move funds in or out of their SafeDepost accounts, select an in account and an out account, amount and done.

Account

A user can create an account by simply giving it a name and purpose like savings, dining out, etc.

Disputes

Creating a dispute is not an option for the user to select from the create card, however, when a user selects ‘create a dispute’ on a transaction, the user will be taken to the create card. If User A accepts but User B rejects then user A can open a dispute. To open a dispute users must accept a 15% charge of the transaction in question. The user will need to upload a picture of the item in dispute (we need an admin panel to review and resolve disputes [connect with Jira or an inhouse solution] to allow admin to remove, refund or change (15%) dispute fee).

Repeat

See the last few Deposits and tap to easily repeat the same Deposit.

Contacts

Import contacts from the user's device or Google account and click to users on the system. The user can see past transactions with contacts and also initiate a new transaction or request.

Preferences

This is where the user will handle all their preferences.

Account

Update the email, username, number and more.
Profile
The user can add or edit personal information such as image, name and more
Banking/payment methods
List all payment methods
Add payment method
Connect with new bank/payment details

Theme

Users can change to a dark mode.

Rate app

Ask the user if they are having a good experience on the app; if yes, ask for a review on Google Play or App Store, if not, ask for feedback.

About app

Have a short About Us, mission statement, who built the app and any legal details.

Privacy policy

A simple text format privacy policy

Terms and conditions

A simple text format term & conditions

Logout

Company

If the user has admin access they will be able to add new users to have access to the company account and update company information.

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.

Articles

Contact Us

Call

Email

Chat

Feedback

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.

Fees

The user will be charged 5% on each Deposit at a minimum of $2, if the user wishes to open a Dispute, the user will be asked to forgo 15% of the deposit amount at a minimum of $10. The user can also subscribe to add extra Deposit insurance at a $10 monthly charge to cover transactions up to $5,000, $25 per month to cover Deposits up to $10,000 or $55, to cover transactions up to $25,000. We may also add extra features and benefits to the various tiers later on.

User Story

The “User Story” is meant to give a first-person interactive point of view of the full project, every feature and every use case/scenario. We have not completed this process and plan to leave it for the MVP.

Data

The data structure and all data information can be found in the SafeDeposit API - Documentation.

Data collection

In addition to the data, we need to perform a transfer. We will collect as much data as we can to understand the users’ behaviour and performance of the app and will use this to improve the user experience and to introduce new features in the future.

App improvements

To improve the app, we want to collect data about how users are interacting with the app, for what purposes they are utilizing the app and more.

Terms of deposit

When a user is creating deposit agreements, save all the text in the terms and look for keywords that we already have in the database, and create new keywords by looking at what words are used often in the title of the term.