SashiDo's Getting Started Guide
Tags: tutorial, beginners, devops, javascript
Published: 2019-11-01 09:25:31

First off, let me congratulate you on your excellent taste and welcome you on board! 

If you're reading this, you're probably thinking seriously about taking SashiDo for a spin, or you've just made your choice and are about to start your incredible journey on our platform. Either way, you're in the right place, and in the next lines, I'm going to give you a short 101 that will set your app's shipment on the fastest route with SashiDo. Let's get started!

**TABLE OF CONTENTS**

[CREATE YOUR SASHIDO ACCOUNT](#createyoursashidoaccount)
* [Register on SashiDo](#register-on-sashido)    
* [Structure your Account](#structureyouraccount)    
* [Account Dashboard Overview](#accountdashboardoverview)    
* [Activate your Subscription](#activateyoursubscription)    

[CREATE YOUR FIRST APP](#createyourfirstapp)    
* [How to create an App with SashiDo from scratch](#howtocreateanappwithsashidofromscratch)
* [Migrate your existing app to SashiDo](#migrateyourexistingapptosashido)    
* [Migrate on your own](#migrateonyourown)    
* [Migration performed by our Devs](#migrationperformedbyourdevs)    
* [Choose your Parse Server Version](#chooseyourparseserverversion)
* [Invite your team to collaborate to your projects](#inviteyourteamtocollaborateonyourprojects)    
* [Connect your Frontend to SashiDo](#connectyourfrontendtosashido)    
* [App Dashboard Overview](#appdashboardoverview)
* [API Console & Rest API docs](#apiconsolerestapidocs)    

[MANAGE YOUR DATABASE LIKE A PRO](#manageyourdatabaselikeapro)    
* [Built-in Database Browser](#builtindatabasebrowser)    
* [Database Import & Export](#databaseimportexport)    
* [Automatic Database Backups](#automaticdatabasebackups)    
* [File Service + mCDN](#filesservicemcdn)    

[YOUR BUSINESS LOGIC a.k.a. CLOUD CODE](#yourbusinesslogicakacloudcode)
* [Connect your SashiDo account to GitHub](#connectyoursashidoaccounttogithub)    
* [Simple Cloud Code](#simplecloudcode)    
* [Use Background Jobs to handle recurring activities](#usebackgroundjobstohandlerecurringactivities)    
* [Advanced Cloud Code](#advancedcloudcode)    

[REACH AND ENGAGE YOUR USERS](#reachandengageyourusers)    
* [Spread your message with Push Notifications](#spreadyourmessagewithpushnotifications)    
* [Quick Emails Templates and User Facing Pages Set up](#quickemailtemplatesanduserfacingpagessetup)    
* [Social Login Settings](#socialloginsettings)    


# Create your SashiDo Account

#### Register on SashiDo<a name="register-on-sashido"></a>
In case you haven't signed up already for our services, you should know that we offer [14-days free trial](https://dashboard.sashido.io/register) which you can take advantage of it. The registration is super fast and requires only a valid email address and a secure password. 

> **Pro tip:** In case 14 days are not enough for you to fully test all of the awesome SashiDo features, you can take 3 mins filling out this [Questionnaire](https://parseground.typeform.com/to/ECWjsf) to share your feedback so far and gain 7 extra free days in return.


#### Structure your account 
Your SashiDo account's structure is of great importance not only for the development process but for security as well. There are two types of SashiDo accounts: Owner and Collaborator. To find out what is the difference between them and start your SashiDo experience with the right foot, check our article about [Best Practices in Structuring SashiDo accounts](https://blog.sashido.io/best-practices-in-structuring-sashido-accounts/).

#### Account Dashboard Overview
Once you're done with the registration formalities, it is time to check our beautiful and feature-rich Dashboard that allows you to manage things like a pro even if you're not a programmer yourself.

![Welcome-to-SashiDo-Dashboard](https://media-blog.sashido.io/content/images/2019/07/Welcome-to-SashiDo-Dashboard.png)

The first screen you'll see is the main section from where you'll be able to manage your account. You can either go ahead and hit the `Create New App` directly or browse a bit. On the left side you have a few expanding tabs and below you can find short video intros for each:

* [Products](https://www.youtube.com/watch?v=xSX9rBIe8kk&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=3)
* [Billing](https://www.youtube.com/watch?v=uhvnNCAd6T0&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=14) 
* [Automatic Database Backups](https://www.youtube.com/watch?v=mT0BeSWfqa0&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=17)
* [Account](https://www.youtube.com/watch?v=xSX9rBIe8kk&feature=youtu.be&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&t=128)
* [Referrals](https://www.youtube.com/watch?v=3h7q7USuwZk&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=15)

#### Activate your subscription 
During your trial, you can [add a payment method](https://dashboard.sashido.io/billing/info) to your account at any moment. Once the trial ends, we will only collect the initial monthly charge for the app/s you have hosted, as per our standard [Pricing](https://www.sashido.io/en/pricing/north-america-region). If there is still no payment method added to your account at the Trial ends, access to all projects owned by you will be limited. Then the apps will be stopped and permanently deleted within the next 7 days.

> **Pro tip:** Note that when no apps are hosted in your account and there are no Automatic Database Backups or Custom services enabled, no charges will be applied until you create an app or enable one of these features. You can continue collaborating to other applications or keep your account for future projects.


# Create your first App

#### How to create an app with SashiDo from scratch
Creating an app with SashiDo is super fast and takes less than a minute, see for yourself:

![Create_App](https://media-blog.sashido.io/content/images/2019/07/Create_App.gif)

All you need to do is press the `Create New App` button, add a picture for your app (optional), give it the right name and choose your [hosting region](https://www.sashido.io/en/pricing).

> **Pro tip:** А best practice is to create separate instances for development and production, so you can safely experiment with new features before deploying to the live app. You have to create a second SashiDo app for development(it will be billed as per our standard [Pricing](https://www.sashido.io/en/pricing)), copy your Cloud Code and [import your data](https://www.youtube.com/watch?v=s7I54slFPLY).


#### Migrate your existing app to SashiDo
In case you have an existing app that you want to migrate to SashiDo, first, you'll have to create an empty app like described in the previous step. From here on you have the below 2 general approaches to choose from: 

##### Migrate on your own 
You can perform the Database migration by yourself or with your team. You can import your data to your SashiDo app by using any MongoDB tool you like. For that, you'll need the Database connection string of your SashiDo app, which is located in ```Dashboard > Your App > App Settings > Security & Keys```. There are various tools you may choose to migrate the database, and it is up to your preference – GUI or command line. 

> **Pro tip:** Most of our clients prefer Studio 3T, GUI interface for MongoDB. Their [Connection Manager](https://studio3t.com/knowledge-base/articles/connect-to-mongodb-database/), as well as the docs for the [mongodump](https://docs.mongodb.com/manual/reference/program/mongodump/) and [mongorestore](https://docs.mongodb.com/manual/reference/program/mongorestore/) features,  will be very helpful for you if you decide to choose this tool as well.


##### Migration performed by our Devs 

You should [submit a ticket](https://dashboard.sashido.io/tickets/new) through the Dashboard, specifying that you want to migrate from the current platform you're using and providing your credentials. The Migration service itself is free of charge, but it requires a prepayment $60 for your subscription. This amount is added back as credits to your account that you can use later on. Thus you'll also need to add your billing info to your account before the migration.

Keep in mind that these are some standard options. Based on the specifics of your app and the solution you're migrating away from, there might be some additional points to consider. For more details, send us a note at support@sashido.io, and our experienced Devs would be happy to advise you.

> **Pro tip:** If you have Cloud Code you will need to bring it as well, the same goes for your files. Our engineers can help with files migration too, so please include their size and where you store them in your request for migration.


#### Choose your Parse Server Version 
Each new app is created automatically in the latest stable Parse Server Version available on SashiDo. The current Parse Server Version for each app can be seen and changed from `Dashboard > Your App > Runtime > Parse Server Version > Choose Version`. To reap all the benefits, Parse can offer you, make sure you keep your app running on the latest stable version available.

> **Pro tip:** Our team has prepared an article on how to [Fearlessly upgrade your SashiDo app from Parse Server v2 to v3](https://blog.sashido.io/fearlessly-upgrading-your-sashido-app-from-parse-server-v2-to-v3/), so please check it out for smooth transition in case you're operating on v2.
 

#### Invite your team to collaborate on your projects
To authorize a team member to interact with your app and grant access to the GitHub repo, the first thing the respective person needs to do is create a SashiDo account and connect it with his GitHub account as well.

The next step will be [adding this account as a collaborator](https://www.youtube.com/watch?v=Eo77zaZn-IY&feature=youtu.be&t=38) to your app, which can be easily done from `Dashboard > Your App > App Settings > General`. After you fill the respective email field, click the `Add` button and don't forget to hit `Save Changes` that will appear, to save the App settings changes you have applied.

The person will receive an invitation for collaboration on SashiDo via email that requires confirmation. Then the app will be visible in his SashiDo Dashboard, and he'll be able to work on it, but will have limited permissions when it comes to enabling cost generating features.

#### Connect your Frontend to SashiDo
You can do this via the latest [Parse SDKs](https://parseplatform.org/) for your preferred programming language. Make sure you update your SDKs before you start testing your application in order for your Cloud Code to work properly. Here’s a list of what you might need:

* [iOS & OSX](https://github.com/ParsePlatform/Parse-SDK-iOS-OSX)
* [Android](https://github.com/ParsePlatform/Parse-SDK-Android)
* [JavaScript](https://github.com/ParsePlatform/Parse-SDK-JS)
* [.NET + Xamarin + Unity](https://github.com/ParsePlatform/Parse-SDK-dotNET)
* [Parse PHP SDK](https://github.com/parseplatform/parse-php-sdk)
* [For Arduino](https://github.com/ParsePlatform/Parse-SDK-Arduino)
* [Embedded C](https://github.com/parseplatform/parse-embedded-sdks)

If you’re not too familiar or just getting started with Parse, what I can recommend is to check out the [Official Parse documentation](https://docs.parseplatform.org/) as well as the Parse guides for [iOS](https://docs.parseplatform.org/ios/guide/), [Android](https://docs.parseplatform.org/android/guide/), [Javascript](https://docs.parseplatform.org/js/guide/), [.NET](https://docs.parseplatform.org/dotnet/guide/) etc. 

#### App Dashboard Overview
Each project you create has a separate Dashboard you can enter from the main section:

![Products-Dashboard](https://media-blog.sashido.io/content/images/2019/07/Products-Dashboard.png)

In this space, you can see all of your apps you have created and some general details for each like Date of Creation, Hosting Region, Parse Server Version and current [Engine](https://blog.sashido.io/power-up-with-sashidos-brand-new-engine-feature/) set up. 

From this screen, you can select each app and enter your personal working space with all the features and tools available for the project you have picked. Take a look at [this short intro](https://www.youtube.com/watch?v=xSX9rBIe8kk&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=3) to get a sense of what power and control to await you there.

> **Pro tip:** I recommend the first stop on your tour is the [App Settings section](https://www.youtube.com/watch?v=Eo77zaZn-IY&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=12), then I advise you ensure your app security settings are on point. [Maintaining class and user permissions](https://www.youtube.com/watch?v=rzpLuDxDJzk&t=) from the super user-friendly Dashboard is as simple as it can, but you can also manage [ACLs](https://docs.parseplatform.org/rest/guide/#object-level-access-control) and [CLPs](https://docs.parseplatform.org/rest/guide/#class-level-permissions) with Cloud Code.


#### API Console & Rest API docs
The [API Console](https://blog.sashido.io/introducing-the-api-console/) is an irreplaceable tool that makes communication with the Database and using the [REST API](http://docs.parseplatform.org/rest/guide/) a piece of cake. Not only you can freely interact with your Parse Server API's resources, but you can also export your requests to cURL. Here is a [short video tutorial](https://www.youtube.com/embed/Aq4CAegumNs) to get you started.

# Manage your Database like a Pro

#### Built-in Database Browser
The [DB Browser](https://www.youtube.com/watch?v=JNJDJ4EQBEU&index=4&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr), located at the Core Section of the Dashboard, gives you easy access to your database and allows you to maintain and update your records effortlessly. You can add, delete, sort, filter, query, classify, or edit data without any programming skills needed. 

{% youtube FJF3iD66wlk %} 
   
    

#### Database Import & Export
In SashiDo, we strongly believe in the "no vendor lock-in" policy, and you can easily export/import any collection of your SashiDo DB as every user has remote access to their database.

[Connect to the database using a MongоDB client](https://docs.mongodb.com/guides/server/drivers/) of your choice. Here you will need the database URL which you can find in the `Dashboard > Your App > App settings > Security and Keys`.

>**Pro tip:** Like mentioned above, our go-to approach is to [connect to MongoDB with Studio 3T](https://studio3t.com/knowledge-base/articles/connect-to-mongodb-database//). They have a free trial and give you an easy option to [export data to CSV](https://studio3t.com/knowledge-base/articles/mongodb-export-csv-json-sql-bson/#export-mongodb-to-csv-e-g-excel), [export/import to JSON](https://www.youtube.com/watch?v=s7I54slFPLY&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=19) as well as [migrate your database in BSON fоrmat](https://blog.sashido.io/migrate-database-and-collections-efficiently-with-studio-3t).


#### Automatic Database Backups 
To give our clients control over their database backups and also have the ability to restore them if necessary quickly, we have implemented an [Automatic Database Backups](https://www.youtube.com/watch?v=mT0BeSWfqa0&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=17) feature. Our team strongly recommends [activating the feature](https://dashboard.sashido.io/backups), as it will save you a lot of headaches in situations such as accidental deletion of data.

> **Pro tip:** Have in mind that the first backup for your apps will be present 24hrs after the Automatic Database Backups feature is enabled.


![Automatic-Database-Backups-2](https://media-blog.sashido.io/content/images/2019/07/Automatic-Database-Backups-2.png)

#### Files Service + mCDN
For better app performance and reduced latency, a [Files Service + mCDN](https://blog.sashido.io/announcing-microcdn-for-sashido-files/) is enabled by default for every application hosted on SashiDo. 

Files on SashiDo are not directly recorded in your database. When an entry, holding a file is created, this file is immediately saved to your private AWS S3 bucket. This action returns the file URL, which is actually what is stored in your database. 

Delivery of the files is done from AWS S3 by an added MicroCDN layer with microZones support. We've chosen this particular model, to give our clients the opportunity to have a lightweight database, with faster performance and lower costs.

![eu-app-with-microcdn](https://media-blog.sashido.io/content/images/2019/07/eu-app-with-microcdn.jpeg)

>**Pro tip:** Note that the Parse Server max upload file size limit is 20MB. In certain cases, we can make the limit higher, so please if you need such modification, contact us at support@sashido.io with some more details about your specific use case.


# Your Business Logic a.k.a. Cloud Code

#### Connect your SashiDo Account to GitHub
SashiDo gives a private GitHub repo for each app as we think it's one of the most convenient tools out there, and we've decided to integrate our platform with GitHub to ease your job. In the file `README.md` you will find more useful info about what your new repo offers.

To get started with writing your business logic(Cloud Code) you should [connect your SashiDo account to GitHub](https://blog.sashido.io/how-to-start-using-github-with-sashido-for-beginners/) first. Keep in mind you can have a specific GitHub account connected to only one SashiDo account and vice versa.

>**Pro tip:** See some best practices on how to [document](https://blog.sashido.io/documenting-your-applications-with-sashido-and-github/) and [manage](https://blog.sashido.io/project-management-of-your-sashido-applications-with-github-projects/) your SashiDo Cloud Code on GitHub. And if you want to learn some extra skills related to GitHub have a look at how you can make the whole process of managing your project even easier by [understanding the GitHub Flow](https://blog.sashido.io/the-github-flow-tips-and-tricks/) or check how you can [master GitHub issues](https://blog.sashido.io/bug-tracking-and-features-development-with-sashido-and-github-issues/) by having a way to track bugs, tasks, and improvements efficiently.


#### Simple Cloud Code
The [Simple Cloud Code](https://www.youtube.com/watch?v=Wm8wv3biWkc&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=6) allows you to build more complex apps by offloading some of the business logic on the server-side. You can write functions, jobs, and events that would be built directly into your Parse Server. This approach is an elegant encapsulation and abstraction layer for functionality that could be reused from every front-end code. 

Even if you do not have any experience with Cloud Code, you won't have much trouble as JavaScript is very straightforward and easy to use. [The official Parse docs on Cloud Code](https://docs.parseplatform.org/cloudcode/guide/#getting-started) will help you build and optimize your app from day one. 

>**Pro tip:** There are specific Parse functions called [Triggers](https://docs.parseplatform.org/cloudcode/guide/#beforesave-triggers) used for validation, modifying objects, etc., that can be utilized only from the Cloud Code.


#### Use Background Jobs to handle recurring activities 
[Background Jobs](https://www.youtube.com/watch?v=200nsnA0Gh0&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=9) or also known as [Cloud Jobs](https://docs.parseplatform.org/cloudcode/guide/#cloud-jobs), can be set to run at a specific interval, without any user action required like logging, user notification, monitoring, etc. They are irreplaceable when it comes to automating recurring activities like reports, scheduled crawling, or when you do not want to wait for a slow function's response to improve your app's UX. All you need to do is [create a Cloud Job in your Cloud Code and set it live](https://blog.sashido.io/getting-started-with-background-jobs-on-sashido-2/) in just a few simple steps.

{% youtube aaOAs8ATguM %}

#### Advanced Cloud Code 
The Advanced Cloud Code allows you to integrate different third-party services and libraries such as Mashape, Mailgun, etc., it also empowers you to unlimitedly expand the functionalities of your app and bring your backend to the next level by using [Express.JS](https://expressjs.com/) framework, latest Node.JS and every NPM package from www.npmjs.com.

Our team has prepared an awesome article on [how to get started with Advanced Cloud code](https://blog.sashido.io/github-integration-of-advanced-cloud-code-part-1/), giving a great example of a step-by-step [Twilio](https://www.twilio.com/) integration. The same approach as the described one is applicable for every Cloud module regardless if you're using Android, iOS, or any other platforms, supported by SashiDo. And in the 2nd part of this tutorial, you can learn [how to set up NPM packages for local development](https://blog.sashido.io/github-integration-of-advanced-cloud-code-part-2) if you want to test something on your computer before deploying it in SashiDo's Cloud Code.

>**Pro tip:** If you have mastered your Cloud Code, and more specifically [Triggers](https://docs.parseplatform.org/cloudcode/guide/#beforesave-triggers), here is a very useful article on [How to properly delete a file, without leaving an orphan](https://blog.sashido.io/how-to-properly-delete-a-file-without-leaving-an-orphan/), so you make sure you're keeping a neat and up to date database.
 

# Reach and Engage your Users

#### Spread your message with Push Notifications
SashiDo offers you a fully integrated Push Notifications service that allows you to [ship a million messages per minute](https://blog.sashido.io/sending-milions-of-push-notifications-with-go-redis-and-nats/) to your users **FREE of charge**. Our platform provides simple sending to iOS and Android devices, audience management, and easy activities monitoring. 

{% youtube kbedS-tqpd4 %}

Here is how to kick off in just two steps:

1. Add your [APNS](https://blog.sashido.io/how-to-set-up-ios-push-notifications-in-sashido/#createyourapnsioscredentials) and [FCM](https://blog.sashido.io/android-push-notifications-how-to-start-using-fcm/) credentials from the Dashboard.
2. Configure your app in no time with SashiDo's step-by-step Push Notification guides for [Android](https://blog.sashido.io/android-push-notifications-with-sashido-step-by-step/) and [iOS](https://blog.sashido.io/how-to-set-up-ios-push-notifications-in-sashido/).
3. Set up your [Installations](https://docs.parseplatform.org/rest/guide/#installations) and start sending or scheduling Push Notification from our Dashboard within just a few minutes.

#### Quick Email Templates and User Facing Pages Set up
Email communication is a standing part of every application, especially in cases like an email confirmation, password reset, etc. SashiDo gives you an already implemented verification process and at the same time accommodates you to personalize messages. 

[Get started with emails settings](https://www.youtube.com/watch?v=WJSQQqxBuRg&list=PLk66IKYX7bjrBKSNwNZVpTjVswA0oq5dr&index=18) and continue with [customizing your Email Templates and User-Facing Pages](https://blog.sashido.io/emails-and-custom-user-facing-pages/) according to your needs. On top of that, you can ensure your users don't get lost in translation with [Multilingual Email Templates and User-Facing Pages](https://blog.sashido.io/multilingual-email-templates-and-user-facing-pages/).

![emailTemplates](https://media-blog.sashido.io/content/images/2019/07/emailTemplates.gif)

#### Social Login Settings
SashiDo has fully integrated Facebook and Twitter login, which you can enable directly from your `Dashboard > Your App > App Settings > Users`. 

If you are interested in any of the other [3rd party authentication supported by Parse](https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication) our team will be happy to set it up for you. Send us request at support@sashid.io with the credentials for the providers that you need authentication for and the access_token (i.e., client_id & client_secret).


<center>
<br/>
<h4 style="text-align: center;">Missing what you need?</h4>

<br/>
<a href="https://www.sashido.io/en/faq" class="btn green big" target="_blank">See our FAQs</a><span class="dividerOr">  or  </span><a href="javascript:;" onclick="Intercom('showNewMessage', 'hello')" class="btn blue big" target="_blank">Chat with us </a>

</center>