# Compatibility Requirements

![](https://zinisoft.net/wp-content/uploads/2019/11/schema.png)

Before start, please refer to our system architecture to understand what we need to do to run the Kindie platform.

* **Web server**: displays the website content and provide API for the app.
* **Mobile app**: a software application developed specifically for tearcher and parent on smartphones and tablets.
* If you need to use **HTTPS** for your website, we need to install **Nginx Service**, you can refer step by step to config here: <https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7>. And download [**NGINX CONFIG TEMPLATE**](https://zinisoft.net/wp-content/uploads/2019/11/kindie.zinisoft.net_.zip) to use when you need to deploy on production server.

```
location / {
      proxy_pass http://127.0.0.1:1337;
	    proxy_http_version 1.1;
      proxy_redirect off;
	    proxy_set_header Upgrade $http_upgrade;
	    proxy_set_header Connection 'upgrade';
	    proxy_set_header Host $host;
	    #proxy_cache_bypass $http_upgrade;
	 } 
```

With: **1137** is sails port.

## Web servers

**Install Node.js and npm Package Manager**\
**Node** is supported on most major operating systems, including MacOS X, Windows, and many flavors of Linux. The website has pre-built installers for plenty of platforms, so you can just hop on over to the downloads section of [nodejs.org](http://nodejs.org) and choose the one that’ll work for you. You can refer our article to install.

<https://zinisoft.net/blog/tutorials/how-to-install-node-js-on-windows/>

<https://zinisoft.net/blog/tutorials/how-to-install-nodejs-on-linux-centos-7x/>

### **Install MongoDB Server**&#x20;

MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. No database makes you more productive. You can refer our article below to install:

<https://zinisoft.net/blog/tutorials/how-to-install-mongodb-on-windows-10/>

<https://zinisoft.net/blog/tutorials/how-to-install-mongodb-4-x-on-centos/>

### **Install RoboMongo**

Robo 3T (formerly Robomongo) is the free, lightweight, open-source MongoDB GUI with an embedded mongo shell, real auto-completion, and support for MongoDB 4.0.\
<https://studio3t.com/download/>

## Code Editors

Here is a list of recommended code editors you need installing to start development:

* * **Webstorm:** This is commercial and one of the best IDEs for Javascript. To buy click here​
  * **Atom Editor:** A free and open-source tool with awesome features. Download here​
  * **Visual Studio Code:** This is another free IDE for JavaScript. Download here​
  * **Nuclide:** Is built as a single package on top of Atom to provide hackability and the support of an active community. Download here

You are required to download an IDE to open the project’s source code and start editing it. Many free IDEs are available for free and paid IDEs would definitely have extra features.\
We felt very comfortable with Visual Studio Code and it was used for building this project

## Mobile Development

### **For Android:**

You need to download Android Studio to build apps, to download Android Studio in your workstation, visit the following URL:\
<https://developer.android.com/studio/>\
Or use Genymotion, please also install the Genymotion free version from the following URL:\
<https://www.genymotion.com/fun-zone/>

### **For iOS:**

You need to download XCODE to build apps for iOS. To download XCODE in your Mac, visit the following URL:\
<https://developer.apple.com/xcode/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zinisoft-net.gitbook.io/kindie/compatibility-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
