private void deployProject() {
    createdProjectName = deploymentOptionsPanel.getProjectName();

    ArrayList<String> paths = appBrowserPanel.getAppPaths();
    ArrayList<String> apptypes = appBrowserPanel.getAppTypes();
    ArrayList<String> appNames = appBrowserPanel.getAppNames();

    StringBuffer formBuilder = new StringBuffer();
    formBuilder.append("csrfmiddlewaretoken=");
    formBuilder.append(URL.encodeQueryString(jsVarHandler.getCSRFTokenURL()));

    formBuilder.append("&form-TOTAL_FORMS=");
    formBuilder.append(URL.encodeQueryString(String.valueOf(paths.size())));
    formBuilder.append("&form-INITIAL_FORMS=");
    formBuilder.append(URL.encodeQueryString(String.valueOf(0)));
    formBuilder.append("&form-MAX_NUM_FORMS=");

    for (int i = 0; i < paths.size(); i++) {
      formBuilder.append("&form-" + i + "-apptype=");
      formBuilder.append(apptypes.get(i));

      formBuilder.append("&form-" + i + "-apppath=");
      formBuilder.append(paths.get(i));

      formBuilder.append("&form-" + i + "-appname=");
      formBuilder.append(appNames.get(i));
    }

    formBuilder.append(deploymentOptionsPanel.getPostData());
    formBuilder.append(projectOptionsPanel.getPostData());
    formBuilder.append(databaseOptionsPanel.getPostData());

    RequestBuilder builder =
        new RequestBuilder(RequestBuilder.POST, "/deployments/" + createdProjectName + "/");
    builder.setHeader("Content-type", "application/x-www-form-urlencoded");
    // builder.setHeader(header, value);

    try {
      Request request =
          builder.sendRequest(
              formBuilder.toString(),
              new RequestCallback() {
                public void onError(Request request, Throwable exception) {
                  ErrorPanel ep = new ErrorPanel(clientFactory);
                  ep.errorHTML.setHTML("<p>Error Occured</p>");
                  deployerDeckPanel.add(ep);
                  deployerDeckPanel.showWidget(deployerDeckPanel.getWidgetIndex(ep));
                }

                public void onResponseReceived(Request request, Response response) {
                  if (response.getText().contains("Back to")) {
                    loadingPopup.hide();
                    eventBus.fireEvent(new AsyncRequestEvent("addProject", createdProjectName));
                  } else {
                    loadingPopup.hide();
                    ErrorPanel ep = new ErrorPanel(clientFactory);
                    ep.errorHTML.setHTML(response.getText());
                    deployerDeckPanel.add(ep);
                    deployerDeckPanel.showWidget(deployerDeckPanel.getWidgetIndex(ep));
                  }
                }
              });
    } catch (RequestException e) {

    }

    loadingPopup.setGlassEnabled(true);
    loadingPopup.setGlassStyleName(style.loadingGlass());
    loadingPopup.show();
    int left = (Window.getClientWidth() / 2) - 150;
    int top = (Window.getClientHeight() / 2) - 10;
    loadingPopup.setPopupPosition(left, top);
    loadingPopup.show();
  }