Convert Angular Framework Application to desktop application using Electron
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Project Description:
I have a functional front-end angularjs application that communicates with another back-end Java application deployed in tomcat running on different port(8443). I have been running it on a web browser but now i want to run it as a desktop application. I have been running it as grunt serve for development environment and grunt --clean --prod for production and distribution.
When run in dev mode using grunt serve, the application runs on http://localhost:9000/?baseApiUrl=https://localhost:8443&tenantIdentifier=demo
Question:
How do i go about making the application run in electron for dev mode and later package it for production? I tried How to port an existing angular app to electron? but it can't communication with the backed application on the port.
Please help.
javascript java angularjs node.js electron
add a comment |
Project Description:
I have a functional front-end angularjs application that communicates with another back-end Java application deployed in tomcat running on different port(8443). I have been running it on a web browser but now i want to run it as a desktop application. I have been running it as grunt serve for development environment and grunt --clean --prod for production and distribution.
When run in dev mode using grunt serve, the application runs on http://localhost:9000/?baseApiUrl=https://localhost:8443&tenantIdentifier=demo
Question:
How do i go about making the application run in electron for dev mode and later package it for production? I tried How to port an existing angular app to electron? but it can't communication with the backed application on the port.
Please help.
javascript java angularjs node.js electron
add a comment |
Project Description:
I have a functional front-end angularjs application that communicates with another back-end Java application deployed in tomcat running on different port(8443). I have been running it on a web browser but now i want to run it as a desktop application. I have been running it as grunt serve for development environment and grunt --clean --prod for production and distribution.
When run in dev mode using grunt serve, the application runs on http://localhost:9000/?baseApiUrl=https://localhost:8443&tenantIdentifier=demo
Question:
How do i go about making the application run in electron for dev mode and later package it for production? I tried How to port an existing angular app to electron? but it can't communication with the backed application on the port.
Please help.
javascript java angularjs node.js electron
Project Description:
I have a functional front-end angularjs application that communicates with another back-end Java application deployed in tomcat running on different port(8443). I have been running it on a web browser but now i want to run it as a desktop application. I have been running it as grunt serve for development environment and grunt --clean --prod for production and distribution.
When run in dev mode using grunt serve, the application runs on http://localhost:9000/?baseApiUrl=https://localhost:8443&tenantIdentifier=demo
Question:
How do i go about making the application run in electron for dev mode and later package it for production? I tried How to port an existing angular app to electron? but it can't communication with the backed application on the port.
Please help.
javascript java angularjs node.js electron
javascript java angularjs node.js electron
edited Nov 16 '18 at 18:43
Nishkal Kashyap
397211
397211
asked Nov 16 '18 at 15:37
Ippez RobertIppez Robert
63
63
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Here's how,
1. The boilerplate code.
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL(`file://${__dirname}/index.html`);
//Take note of this line.
//mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
2. Take note of the line mainWindow.loadURL('file://${__dirname}/index.html').
Since your use case is to communicate with another backend application running on a port, using the file protocol (file://<uri>) won't work, you need to communicate with the port on http protocol.
3. To achieve this, I suggest to run a static files http server in your electron application, server your app over local server, and replace this mainWindow.loadURL('file://${__dirname}/index.html') line with mainWindow.loadURL(`http://localhost:9000`) this.
Edit 1:
You can run a very basic static files server like so, however there certainly are better ways to write it.
var express = require('express');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(9000);
Edit 2:
After some discussion in the comments, I decided to clone the repo and add the electron part myself, here's how I did it.
1. Install the following dependencies by running,
npm install --save electron express
2. index.js file
const electron = require('electron');
const path = require('path');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
var express = require('express');
var server = express();
let dir = path.join(__dirname, './dist/community-app');
server.use('/', express.static(dir));
server.listen(9000);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
3. Add the following script in your package.json
"scripts": {
//...
"start": "electron ."
},
4. Result

PS: I had some troubles building angularjs project, because there were no build scripts in the project for windows, hence some styles are missing from the page.
Git repo:
https://github.com/openMF/community-app
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
|
show 5 more comments
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53341025%2fconvert-angular-framework-application-to-desktop-application-using-electron%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here's how,
1. The boilerplate code.
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL(`file://${__dirname}/index.html`);
//Take note of this line.
//mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
2. Take note of the line mainWindow.loadURL('file://${__dirname}/index.html').
Since your use case is to communicate with another backend application running on a port, using the file protocol (file://<uri>) won't work, you need to communicate with the port on http protocol.
3. To achieve this, I suggest to run a static files http server in your electron application, server your app over local server, and replace this mainWindow.loadURL('file://${__dirname}/index.html') line with mainWindow.loadURL(`http://localhost:9000`) this.
Edit 1:
You can run a very basic static files server like so, however there certainly are better ways to write it.
var express = require('express');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(9000);
Edit 2:
After some discussion in the comments, I decided to clone the repo and add the electron part myself, here's how I did it.
1. Install the following dependencies by running,
npm install --save electron express
2. index.js file
const electron = require('electron');
const path = require('path');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
var express = require('express');
var server = express();
let dir = path.join(__dirname, './dist/community-app');
server.use('/', express.static(dir));
server.listen(9000);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
3. Add the following script in your package.json
"scripts": {
//...
"start": "electron ."
},
4. Result

PS: I had some troubles building angularjs project, because there were no build scripts in the project for windows, hence some styles are missing from the page.
Git repo:
https://github.com/openMF/community-app
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
|
show 5 more comments
Here's how,
1. The boilerplate code.
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL(`file://${__dirname}/index.html`);
//Take note of this line.
//mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
2. Take note of the line mainWindow.loadURL('file://${__dirname}/index.html').
Since your use case is to communicate with another backend application running on a port, using the file protocol (file://<uri>) won't work, you need to communicate with the port on http protocol.
3. To achieve this, I suggest to run a static files http server in your electron application, server your app over local server, and replace this mainWindow.loadURL('file://${__dirname}/index.html') line with mainWindow.loadURL(`http://localhost:9000`) this.
Edit 1:
You can run a very basic static files server like so, however there certainly are better ways to write it.
var express = require('express');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(9000);
Edit 2:
After some discussion in the comments, I decided to clone the repo and add the electron part myself, here's how I did it.
1. Install the following dependencies by running,
npm install --save electron express
2. index.js file
const electron = require('electron');
const path = require('path');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
var express = require('express');
var server = express();
let dir = path.join(__dirname, './dist/community-app');
server.use('/', express.static(dir));
server.listen(9000);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
3. Add the following script in your package.json
"scripts": {
//...
"start": "electron ."
},
4. Result

PS: I had some troubles building angularjs project, because there were no build scripts in the project for windows, hence some styles are missing from the page.
Git repo:
https://github.com/openMF/community-app
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
|
show 5 more comments
Here's how,
1. The boilerplate code.
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL(`file://${__dirname}/index.html`);
//Take note of this line.
//mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
2. Take note of the line mainWindow.loadURL('file://${__dirname}/index.html').
Since your use case is to communicate with another backend application running on a port, using the file protocol (file://<uri>) won't work, you need to communicate with the port on http protocol.
3. To achieve this, I suggest to run a static files http server in your electron application, server your app over local server, and replace this mainWindow.loadURL('file://${__dirname}/index.html') line with mainWindow.loadURL(`http://localhost:9000`) this.
Edit 1:
You can run a very basic static files server like so, however there certainly are better ways to write it.
var express = require('express');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(9000);
Edit 2:
After some discussion in the comments, I decided to clone the repo and add the electron part myself, here's how I did it.
1. Install the following dependencies by running,
npm install --save electron express
2. index.js file
const electron = require('electron');
const path = require('path');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
var express = require('express');
var server = express();
let dir = path.join(__dirname, './dist/community-app');
server.use('/', express.static(dir));
server.listen(9000);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
3. Add the following script in your package.json
"scripts": {
//...
"start": "electron ."
},
4. Result

PS: I had some troubles building angularjs project, because there were no build scripts in the project for windows, hence some styles are missing from the page.
Git repo:
https://github.com/openMF/community-app
Here's how,
1. The boilerplate code.
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadURL(`file://${__dirname}/index.html`);
//Take note of this line.
//mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
2. Take note of the line mainWindow.loadURL('file://${__dirname}/index.html').
Since your use case is to communicate with another backend application running on a port, using the file protocol (file://<uri>) won't work, you need to communicate with the port on http protocol.
3. To achieve this, I suggest to run a static files http server in your electron application, server your app over local server, and replace this mainWindow.loadURL('file://${__dirname}/index.html') line with mainWindow.loadURL(`http://localhost:9000`) this.
Edit 1:
You can run a very basic static files server like so, however there certainly are better ways to write it.
var express = require('express');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(9000);
Edit 2:
After some discussion in the comments, I decided to clone the repo and add the electron part myself, here's how I did it.
1. Install the following dependencies by running,
npm install --save electron express
2. index.js file
const electron = require('electron');
const path = require('path');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow = null;
var express = require('express');
var server = express();
let dir = path.join(__dirname, './dist/community-app');
server.use('/', express.static(dir));
server.listen(9000);
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://localhost:9000`);
mainWindow.on('closed', function () {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});
3. Add the following script in your package.json
"scripts": {
//...
"start": "electron ."
},
4. Result

PS: I had some troubles building angularjs project, because there were no build scripts in the project for windows, hence some styles are missing from the page.
Git repo:
https://github.com/openMF/community-app
edited Nov 17 '18 at 7:05
answered Nov 16 '18 at 17:50
Nishkal KashyapNishkal Kashyap
397211
397211
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
|
show 5 more comments
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
You can paste it right under the boilerplate code, and it should work. And of course, make sure to include express to your dependencies, it is not nodejs built-in module.
– Nishkal Kashyap
Nov 16 '18 at 18:18
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
Cant tell the exact problem until I see the code. Perhaps you have a git repo or something where I can inspect?
– Nishkal Kashyap
Nov 16 '18 at 18:53
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
On it. Please delete the last comment, and do not ever share credentials in an open setting like this. Look for merge requests on the git repo. @IppezRobert
– Nishkal Kashyap
Nov 17 '18 at 6:02
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Hi Nishkal Kashyap, to build the project please follow this instruction from README.MD file github.com/openMF/community-app/blob/develop/README.md and kindly send the PR to my github report github.com/Ippezrobert/community-app
– Ippez Robert
Nov 17 '18 at 9:13
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
Nishkal Kashyap, Any update on this please?
– Ippez Robert
Nov 18 '18 at 10:57
|
show 5 more comments
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53341025%2fconvert-angular-framework-application-to-desktop-application-using-electron%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown