Skip to content
This repository was archived by the owner on Sep 13, 2020. It is now read-only.

Commit 24c8c7d

Browse files
committed
Merge pull request #38 from ParsePlatform/stanleyw.add_partner_quickstart_guidelines
Add partner quickstart guidelines
2 parents 77f56cf + 2619d4e commit 24c8c7d

File tree

3 files changed

+122
-5
lines changed

3 files changed

+122
-5
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ These SDKs let you use [Parse](https://www.parse.com/) for building Internet of
66

77
* Build [cross-platform integrations](https://www.parse.com/products) between your connected device and mobile/web/desktop apps.
88

9-
* Allow your users to personalize and monitor their connected devices.
9+
* Allow your users to personalize and monitor their connected devices.
1010
* Parse is the easiest way to [build user login](https://www.parse.com/docs/ios_guide#ui-login/iOS) on mobile apps. Parse also has [user session APIs](https://www.parse.com/docs/ios_guide#sessions/iOS) in all mobile SDKs, which let you provision restricted sessions from the phone after the user logs into your app. You can then transfer this restricted session token to your device so that your device can access user-specific data.
1111
* With Parse APIs, you can build a device manager screen in your mobile app what shows the user's provisioned connected devices (sample app below). At any time, the user can revoke a device from accessing his or her data on Parse.
1212

1313
* Send [push notifications](https://www.parse.com/products/push) to your connected devices.
1414

15-
* Securely access your app's data from connected devices.
15+
* Securely access your app's data from connected devices.
1616
* All communication between your connected device's Embedded SDK and the Parse Cloud, including push notifications, is protected by SSL encryption.
1717
* You can protect user data with [Access Control Lists (ACLs)](https://www.parse.com/docs/data#security-objects) so it can only be accessed with that user's session token.
1818

@@ -48,6 +48,9 @@ Please see the Parse website for detailed developer guides:
4848

4949
We prepared a [sample app](https://github.com/ParsePlatform/Anydevice) that demonstrates how to provision connected devices using a companion phone app such that connected devices can securely access user-specific data on the Parse Cloud. This sample app also demonstrates how to send push notifications between the phone app and connected devices.
5050

51+
##Porting
52+
If you want to port this SDK to run on your own IoT platform, please see [/partners/partner_platform_instructions.md](/partners/partner_platform_instructions.md).
53+
5154
##Contributing
5255

5356
See the CONTRIBUTING file for how to help out.

partners/partner_platform_instructions.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ This document is for partner platform owners that want to make the Parse Embedde
55
* Partners should fork the repo under your own organization on GitHub.
66
* Partners are responsible for managing your fork of the repo.
77
* In the README of your repo fork
8-
* Please include a **quickstart guide** telling the developer how to get started on your board, including
9-
* saving an object
10-
* receiving a push notification
8+
* Please include a **quickstart guide** telling the developer how to get started on your board (e.g. saving an object, receiving a push notification)
9+
* Please see [Partner Quickstart Guidlines](/partners/partner_quickstart_guidelines.md) for details.
1110
* Please include the **developer support contact** for your board/platform.
1211
* Partners are responsible for responding to developer support questions for your board/platform in a timely manner.
1312
* Please try to reuse as much existing code as possible, and put your platform-specific code in its own directory. This makes it easier for you to pull in future changes from the upstream Parse repo.
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Parse Quickstart Guidelines for IoT Partners
2+
3+
This document is for partner platform owners that want to make the Parse Embedded SDK run on their board.
4+
5+
## Overview
6+
7+
The Quickstart (QS) is one of the most important documents at Parse. It is a canonical guide that gets the developer up and running with Parse on a particular platform. You will be creating a quickstart guide for your Github repo fork's README. This document assumes that you have already read [Partner Platform Instructions](/partners/partner_platform_instructions.md).
8+
9+
There are a few audiences that our QS serves:
10+
11+
1. **New Developers** - For people who just signed up with Parse, they will most likely head to the QS to get going with their favorite platform, and also to discover what is possible with Parse.
12+
2. **Existing Developers** - The QS is also the fastest way to try out a new feature in Parse, or to simply start a new project. Even seasoned Parse developers will use this flow.
13+
14+
Principles
15+
16+
* **Completeness** - After the developer goes through every step, they should have a working app on the platform that saves an object, and that can receive a push notification.
17+
* **Succinct** - It should not contain anything superfluous from the completeness goal. That's what the full Guide is for.
18+
* **The High Five Moment.** - The developer should be forced to paste in some code, compile, and see something work (like saving an object). This gives the developer a “high five” moment.
19+
20+
## Prerequisites
21+
22+
Before writing your Quickstart guide, you will need the following:
23+
24+
* A Parse SDK (Embedded C / Arduino) that works on your board/platform.
25+
* A working project in your IDE that integrates the Parse SDK.
26+
27+
## Templates
28+
29+
Use the following templates as you create your QS.
30+
31+
There are two templates:
32+
33+
1. New Projects: For devs that want to download a blank project that already has Parse integrated.
34+
2. Existing Projects: For devs that have an existing project and want to integrate Parse into it.
35+
36+
### New Project Template
37+
38+
**1. Setup the Environment**
39+
40+
* Instructions on getting the development environment setup for your board/platform.
41+
* If you already have a guide for this online, you can link to it. Ideally, this guide only has what is necessary to get the environment setup, and no more. Explain any caveats or exceptions.
42+
43+
**2. Project File with Parse Integration**
44+
45+
* Please provide a link for downloading a project file that has the Parse SDK integrated and ready for the developer to code against.
46+
47+
**3. Loading and Prepping the Project**
48+
49+
* Provide instructions on how to load the project. This may be as simple as “click on the file to open it in the IDE.”
50+
* Provide any additional instructions to setup the project once opened. Examples:
51+
* Connecting the device to WiFi.
52+
* Setting build targets and options.
53+
* Jumper configuration.
54+
* At the end of this, the developer should be able to successfully build the project and also flash it onto the device. But, nothing should really happen — this is just a blank project.
55+
56+
**4. Code for Saving a Parse Object**
57+
58+
* Provide the exact code needed to save a Parse Object using the Parse SDK for your platform.
59+
* This forces the developer to copy and paste it into the location.
60+
* They can now build and run the project and observe that an object is saved.
61+
* Please direct the developer the Parse.com Data Browser, where they can see their saved object.
62+
63+
**5. Code for Receiving a Push Notification**
64+
65+
* Provide the exact code needed to receive a Parse Push Notification using the Parse SDK for your platform to make an LED turn on for a duration of time, and turn off.
66+
* This forces the developer to copy and paste it into the location.
67+
* They can now build and run the project and send a push notification to the device to see an LED blink.
68+
* To test push receiving, please instruct the developer to send a push using this curl command:
69+
```
70+
curl -X POST \
71+
-H "X-Parse-Application-Id: YOUR_PARSE_APPLICATION_ID" \
72+
-H "X-Parse-REST-API-Key: YOUR_PARSE_REST_API_KEY" \
73+
-H "Content-Type: application/json" \
74+
-d '{
75+
"where": {
76+
"deviceType": "embedded"
77+
},
78+
"data": {
79+
"alert": "A test push from Parse!"
80+
}
81+
}' \
82+
https://api.parse.com/1/push
83+
```
84+
85+
**6. Troubleshooting**
86+
87+
* Provide troubleshooting tips for common issues.
88+
89+
### Existing Project Template
90+
91+
**1. Download Parse SDK and Integrate**
92+
93+
* Provide a link for downloading the Parse SDK for your platform. This can be your Github repo fork's zip file download.
94+
* Give instructions on how to load and configure the Parse SDK into an existing project.
95+
* Provide instructions on how to get connect the device to WiFi, if necessary.
96+
* At the end of this, the developer should be able to successfully build their project and also flash it onto the device. But, nothing should really happen with Parse functionality.
97+
98+
**2. Code Saving a Parse Object**
99+
100+
* Provide the exact code needed to save a Parse Object using the Parse SDK for your platform.
101+
* This forces the developer to copy and paste it into the location.
102+
* They can now build and run the project and observe that an object is saved.
103+
* Please direct the developer the Parse.com Data Browser, where they can see their saved object.
104+
105+
**3. Code for Receiving a Push Notification**
106+
107+
* Provide the exact code needed to receive a Parse Push Notification using the Parse SDK for your platform to make an LED turn on for a duration of time, and turn off.
108+
* This forces the developer to copy and paste it into the location.
109+
* They can now build and run the project and send a push notification to the device to see an LED blink.
110+
* To test push receiving, please instruct the developer to send a push using a curl command (see above).
111+
112+
**4. Troubleshooting**
113+
114+
* Provide troubleshooting tips for common issues.
115+

0 commit comments

Comments
 (0)