diff --git a/Make.bat b/Make.bat
new file mode 100644
index 0000000..40794eb
--- /dev/null
+++ b/Make.bat
@@ -0,0 +1,359 @@
+@echo off
+REM
+REM ****************************************************************
+set WD=%cd%
+set PGBUILDPATH=%WD%\pkg\win32\win-build
+
+set CMDOPTION=""
+IF "%1" == "clean"  SET CMDOPTION="VALID"
+IF "%1" == "x86"    SET CMDOPTION="VALID"
+IF "%1" == "amd64"  SET CMDOPTION="VALID"
+
+IF NOT %CMDOPTION%=="VALID"  ( GOTO USAGE )
+set ARCHITECTURE=%1
+
+IF "%ARCHITECTURE%"=="clean" (
+    GOTO CLEAN_RELEASE
+    goto:exit
+)
+
+IF "%ARCHITECTURE%"=="x86" (
+    IF "%PYTHON_HOME%" == ""   SET "PYTHON_HOME=C:\Python27"
+    IF "%PYTHON_DLL%" == ""    SET "PYTHON_DLL=C:\Windows\System32\python27.dll"
+    IF "%QTDIR%" == ""         SET "QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013"
+	IF "%PG_PATH%" == ""       SET "PG_PATH=C:\Program Files (x86)\PostgreSQL\9.5"
+)
+
+IF "%ARCHITECTURE%"=="amd64" (
+    IF "%PYTHON_HOME%" == ""   SET "PYTHON_HOME=C:\Python27-x64"
+    IF "%PYTHON_DLL%" == ""    SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
+    IF "%QTDIR%" == ""         SET "QTDIR=C:\Qt-x64\Qt5.5.1\5.5\msvc2013"
+    IF "%PG_PATH%" == ""       SET "PG_PATH=C:\Program Files\PostgreSQL\9.5"
+)
+
+IF "%INNOTOOL%" == ""      SET "INNOTOOL=C:\Program Files (x86)\Inno Setup 5"
+IF "%VCDIR%" == ""         SET "VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
+
+REM set the variables if not availalbe in windows enviroment
+set VCVAR=%VCDIR%\vcvarsall.bat
+set VCNMAKE=%VCDIR%\bin\nmake.exe
+set QMAKE=%QTDIR%\bin\qmake.exe
+set VIRTUALENV=ve_python
+set TARGETINSTALLER=%WD%\dist
+set PYTHON_VERSION=%PYTHON_HOME:~-2%
+FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py')    DO set APP_RELEASE=%%a
+FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\config.py')   DO set APP_REVISION_VERSION=%%a
+FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\config.py')     DO set APP_SUFFIX_VERSION=%%a
+REM remove single quote from the string
+set APP_SUFFIX_VERSION=%APP_SUFFIX_VERSION:'=%
+set APP_NAME=""
+FOR /F "tokens=2* delims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py')   DO set APP_NAME=%%a
+set INSTALLERNAME=%APP_NAME%-v%APP_RELEASE%.%APP_REVISION_VERSION%-%APP_SUFFIX_VERSION%-%ARCHITECTURE%.exe
+
+set PGADMIN4_VERSION=v%APP_RELEASE%
+set PGADMIN4_APP_VERSION=%APP_RELEASE%.%APP_REVISION_VERSION%
+set REQUIRMENTTXT=""
+echo "%PYTHON_HOME%" | find "Python2" > nul
+if %ERRORLEVEL% == 0    set REQUIRMENTTXT=requirements_py2.txt
+echo "%PYTHON_HOME%" | find "Python3" > nul
+if %ERRORLEVEL% == 0    set REQUIRMENTTXT=requirements_py3.txt
+IF %REQUIRMENTTXT% == ""           GOTO setPythonVersion
+
+set PATH=%PG_PATH%;%PG_PATH%\bin;%PATH%
+echo ****************************************************************
+echo                        S U M M A R Y
+echo ****************************************************************
+echo Target mode = %ARCHITECTURE%
+echo INNOTOOL    = %INNOTOOL%
+echo VCDIR       = %VCDIR%
+echo NMAKE       = %VCNMAKE%
+echo QTDIR       = %QTDIR%
+echo QMAKE       = %QMAKE%
+echo PYTHON_HOME = %PYTHON_HOME%
+echo PYTHON_DLL  = %PYTHON_DLL%
+echo PG_PATH     = %PG_PATH%
+echo ****************************************************************
+
+REM Check if path set in enviroments really exist or not ?
+if NOT EXIST "%INNOTOOL%"          GOTO setInnoDetails
+if NOT EXIST "%VCDIR%"             GOTO setVCDetails
+if NOT EXIST "%VCVAR%"             GOTO setVCDetails
+if NOT EXIST "%VCNMAKE%"           GOTO setVCDetails
+if NOT EXIST "%QTDIR%"             GOTO setQtDetails
+if NOT EXIST "%QMAKE%"             GOTO setQtDetails
+if NOT EXIST "%PYTHON_HOME%"       GOTO setPythonDetails
+if NOT EXIST "%PYTHON_DLL%"        GOTO setPythonDetails
+if NOT EXIST "%PG_PATH%"           GOTO setPgPath
+
+REM Main Functions
+call :CLEAN_RELEASE
+call :CREATE_VIRTUAL_ENV
+call :CREATE_RUNTIME_ENV
+call :CREATE_PYTHON_ENV
+rem call :CLEANUP_ENV
+call :CREATE_INSTALLER
+
+cd %WD%
+goto:EXIT
+
+:CLEAN_RELEASE
+    echo "Calling Clean Release ..."
+    if EXIST "%PGBUILDPATH%" rmdir /s /q "%PGBUILDPATH%" > nul
+    if EXIST "%WD%\pkg\win32\Output" rmdir /s /q "%WD%\pkg\win32\Output" > nul
+    for /R "%WD%" %%f in (*.pyc) do del /q "%%f" > nul
+	del /s "%WD%\pkg\win32\installer.iss" > nul
+	cd %WD%
+GOTO:EOF
+
+:CREATE_VIRTUAL_ENV
+    echo "Creating Virtual Enviroment"
+    if NOT EXIST "%PGBUILDPATH%"  mkdir %PGBUILDPATH%
+
+    cd %PGBUILDPATH%
+    virtualenv %VIRTUALENV%
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    echo "Activating Virtual Enviroment -  %PGBUILDPATH%\%VIRTUALENV%\Scripts\activate"
+    CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\activate"
+    set PATH=%PG_PATH%\bin;%PATH%
+
+	echo "Installing dependences......."
+    pip install -r %WD%\%REQUIRMENTTXT%
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+	rem This is required because windows only work with 2.6.1 version
+	pip install psycopg2 -U
+    echo "Virtual Enviroment created successfully.................."
+
+    echo "DEactivating Virtual Enviroment -  %PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate"
+    CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate"
+
+    cd %WD%
+GOTO:EOF
+
+:CREATE_RUNTIME_ENV
+    echo "Compiling source code ...."
+    mkdir %PGBUILDPATH%\runtime
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+	rem --- Processing WEB ---
+    cd %WD%
+	cd web
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+	xcopy /S /I /E /H /Y %WD%\web %PGBUILDPATH%\web > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    rem Clean up .pyc, pgadmin.db, config_local.py
+    for /R "%WD%" %%f in (*.pyc) do del /q "%%f"
+	del /s %WD%\web\pgadmin.db > nul
+	del /s config_local.py > nul
+	echo SERVER_MODE = False > %PGBUILDPATH%\web\config_local.py
+    echo HELP_PATH = '../../../docs/en_US/html/' >> %PGBUILDPATH%\web\config_local.py
+    echo MINIFY_HTML = False >> %PGBUILDPATH%\web\config_local.py
+	rem Compile doc folder
+	mkdir %PGBUILDPATH%\docs\en_US\html
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+	rem compile docs - web
+	%PGBUILDPATH%\%VIRTUALENV%\Scripts\sphinx-build.exe   %WD%\docs\en_US %PGBUILDPATH%\docs\en_US\html
+
+    rem --- Processing RUNTIME ---
+    cd %WD%
+	cd runtime
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+	call "%VCVAR%" %ARCHITECTURE%
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    echo Calling -  call "%VCVAR%" %ARCHITECTURE%
+
+    call "%QMAKE%"
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    call "%VCNMAKE%" clean
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    call "%VCNMAKE%
+    IF ERRORLEVEL 1 GOTO ERR_HANDLER
+    rem Copy binary to Release Folder
+    copy %WD%\runtime\release\pgAdmin4.exe %PGBUILDPATH%\runtime
+    IF ERRORLEVEL 1 GOTO ERR_HANDLER
+
+    rem Copy QTP dependences
+    copy %QTDIR%\bin\icudt54.dll   %PGBUILDPATH%\runtime  > nul
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\icuin54.dll   %PGBUILDPATH%\runtime  > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\icuuc54.dll   %PGBUILDPATH%\runtime  > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Core.dll   %PGBUILDPATH%\runtime  > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Sql.dll    %PGBUILDPATH%\runtime  > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Gui.dll    %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Qml.dll    %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5OpenGL.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Quick.dll  %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Sensors.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Widgets.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5WebKit.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Network.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Multimedia.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5WebChannel.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5Positioning.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5PrintSupport.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5WebKitWidgets.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    copy %QTDIR%\bin\Qt5MultimediaWidgets.dll %PGBUILDPATH%\runtime > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    mkdir %PGBUILDPATH%\runtime\platforms
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    copy %QTDIR%\plugins\platforms\qwindows.dll %PGBUILDPATH%\runtime\platforms > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    echo [Paths] > %PGBUILDPATH%\runtime\qt.conf
+    echo Plugins=plugins >> %PGBUILDPATH%\runtime\qt.conf
+    echo "Runtime Source code build successfully.................."
+
+    cd %WD%
+GOTO:EOF
+
+:CREATE_PYTHON_ENV
+    copy %PYTHON_DLL% %PGBUILDPATH%\runtime  > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    xcopy /S /I /E /H /Y %PYTHON_HOME%\DLLs %PGBUILDPATH%\%VIRTUALENV%\DLLs > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    xcopy /S /I /E /H /Y %PYTHON_HOME%\Lib %PGBUILDPATH%\%VIRTUALENV%\Lib > nul
+	IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+	cd %WD%
+GOTO:EOF
+
+:CREATE_INSTALLER
+    echo "Preparing Creation of windows installer"
+    if NOT EXIST %TARGETINSTALLER% mkdir %TARGETINSTALLER%
+
+	cp %wd%\pkg\win32\Resources\pgAdmin4.ico %PGBUILDPATH%\
+    rem search and replace string from config.py and copy to config_local.py
+    cd %WD%
+    cd pkg
+    cd win32
+
+    @echo off
+    setlocal disableDelayedExpansion
+    set InputFile=installer.iss.in
+    set OutputFile=installer.iss
+    set "_strFind=#define MyAppVersion "0.0""
+    set "_strInsert=#define MyAppVersion "%PGADMIN4_VERSION%""
+    set "_strFind1=#define MyAppFullVersion "0.0""
+    set "_strInsert1=#define MyAppFullVersion "%PGADMIN4_APP_VERSION%""
+    set "_strFind2=#define MyAppName "0.0""
+    set "_strInsert2=#define MyAppName "%APP_NAME%""
+	set "_strFind3=#define MyAppArchitecturesMode"
+	set "_strInsert3=#define MyAppArchitecturesMode"
+    if "%ARCHITECTURE%"=="amd64" set "_strInsert3=#define MyAppArchitecturesMode="x64""
+
+    :Replace
+    >"%OutputFile%" (
+    for /f "usebackq delims=" %%A in ("%InputFile%") do (
+        if "%%A" equ "%_strFind%"  (echo %_strInsert%)   else (
+        if "%%A" equ "%_strFind1%" (echo %_strInsert1%)  else (
+        if "%%A" equ "%_strFind2%" (echo %_strInsert2%)  else (
+		if "%%A" equ "%_strFind3%" (echo %_strInsert3%) else (echo %%A))))
+		)
+    )
+	rem if "%ARCHITECTURE%" equ "amd64" (echo %_strInsert3%
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+	echo "%INNOTOOL%\ISCC.exe" /q "%WD%\pkg\win32\installer.iss"
+    call "%INNOTOOL%\ISCC.exe" /q "%WD%\pkg\win32\installer.iss"
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+    echo move %WD%\pkg\win32\Output\setup.exe "%TARGETINSTALLER%\%INSTALLERNAME%"
+	move %WD%\pkg\win32\Output\setup.exe "%TARGETINSTALLER%\%INSTALLERNAME%"
+    IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
+
+    echo "Location - %TARGETINSTALLER%\%INSTALLERNAME%"
+    echo "Installer generated successfully.................."
+    rem cleaning up PGBUILDPATH as installer is created successfully
+    if EXIST "%PGBUILDPATH%" rmdir /s /q "%PGBUILDPATH%" > nul
+    if EXIST "%WD%\pkg\win32\Output" rmdir /s /q "%WD%\pkg\win32\Output" > nul
+    del /s "%WD%\pkg\win32\installer.iss" > nul
+    cd %WD%
+GOTO:EOF
+
+:CLEANUP_ENV
+    rd %PGBUILDPATH%\%VIRTUALENV%\Include /S /Q
+    rd %PGBUILDPATH%\%VIRTUALENV%\Scripts /S /Q
+    del /s %PGBUILDPATH%\%VIRTUALENV%\pip-selfcheck.json
+
+	echo "Cleanup private environment successfully.................."
+    cd %WD%
+GOTO:EOF
+
+:setInnoDetails
+    echo %INNOTOOL% does not exist
+    echo Please Install Innotool and set INNOTOOL enviroment Variable.
+    echo set "INNOTOOL=<PATH>"
+goto EXIT
+
+:setVCDetails
+    echo %VCDIR% does not exist.
+    echo %VCVAR% does not exist.
+    echo %VCNMAKE% does not exist.
+    echo Please Install Microsoft Visual studio set VCDIR enviroment Variable.
+    echo set "VCDIR%=<PATH>"
+    echo set "VCVAR%=<PATH>"
+    echo set "VCNMAKE%=<PATH>"
+goto EXIT
+
+:setPythonDetails
+    echo %PYTHON_HOME% does not exist.
+    echo PYTHON_VERSION not set.
+    echo %PYTHON_DLL% does not exist.
+    echo Please Install Python and set the PYTHON_HOME enviroment Variable.
+    echo set "PYTHON_VERSION=<VERSION NUMBER>"
+    echo set "PYTHON_HOME=<PATH>"
+    echo set "PYTHON_DLL=<PATH>"
+goto EXIT
+
+:setQtDetails
+    echo %QTDIR% does not exist.
+    echo Please Install QT SDK and set enviroment Variable
+    echo set "QTDIR=<PATH>"
+goto EXIT
+
+:setPgPath
+    echo %PG_PATH% does not exist.
+    echo Please Install Postgres and set enviroment Variable
+    echo set "PG_PATH=<PATH>"
+goto EXIT
+
+:setPythonVersion
+    echo "Python version supported Above 2.6, 2.xx and 3.xx only"
+goto EXIT
+
+:ERR_HANDLER
+    echo.
+    echo Aborting build!
+    cd %WD%
+    exit /B 1
+GOTO:EOF
+
+:USAGE
+    echo Invalid command line options....
+    echo Usage: "Make.bat <x86 | amd64 | clean>"
+    echo.
+	exit /B 1
+GOTO EXIT
+
+:EXIT
+	exit /B 0
\ No newline at end of file
diff --git a/pkg/win32/README.txt b/pkg/win32/README.txt
new file mode 100644
index 0000000..9c5e3a8
--- /dev/null
+++ b/pkg/win32/README.txt
@@ -0,0 +1,51 @@
+﻿pgAdmin 4
+=========
+
+Prerequisites
+-------------
+
+To generate a pgAdmin 4 installer for windows (64) bit, the following packages 
+must be installed:
+
+- QT 4.6 or above (older versions may work, but haven't been tested).
+- Python 2.6 or above.
+- Inno Tool Version 5.5.8 and Above
+- Microsoft visual studio (2013)
+
+The following environment variables may be defined to override defaults in the
+build script (Make.bat):
+
+INNOTOOL, VCDIR, PYTHON_HOME, PYTHON_DLL, QTDIR
+
+The default settings are equivalent to: depends on x86 and amd64
+
+SET "INNOTOOL=C:\Program Files (x86)\Inno Setup 5”
+SET "VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
+SET "PYTHON_HOME=C:\Python27"
+SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
+SET "QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013"
+SET "PG_PATH=C:\Program Files\PostgreSQL\9.5"
+How to build
+------------
+
+$ cd <PGADMIN4_SRC>
+$ Make.bat <x86 | amd64 | clean>
+
+This will generate pgAdmin4<APP_RELEASE>.<minor><suffix>.exe in the PGADMIN4_SRC/dist
+folder. The APP_RELEASE, minor and suffix version details will be extracted from
+web/config.py and used to create the installer filename, for example:
+
+pgadmin4-1.0.0-dev.exe
+
+Side-by-side installations of APP_RELEASE versions of pgAdmin are allowed, so an
+installation directory of:
+
+"C:\Program Files (x86)\pgAdmin 4\" for x86
+"C:\Program Files\pgAdmin 4\" for amd64
+would actually install into
+
+C:\Program Files (x86)\pgAdmin 4\<APP_RELEASE>
+
+e.g.
+
+"C:\Program Files (x86)\pgAdmin 4\v1\"
diff --git a/pkg/win32/Resources/SplashScreen.bmp b/pkg/win32/Resources/SplashScreen.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..c2407307ef3ba7d4093c7a0762cd94cbc84316cc
GIT binary patch
diff --git a/pkg/win32/Resources/license.rtf b/pkg/win32/Resources/license.rtf
new file mode 100644
index 0000000000000000000000000000000000000000..40555108fa0575040cd3d8bb06da301fea2dd2a6
--- /dev/null
+++ b/pkg/win32/Resources/license.rtf
@@ -0,0 +1,13 @@
+{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang2057\deflangfe2057{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}}
+{\*\generator Riched20 6.2.9200}\viewkind4\uc1
+\pard\f0\fs28\lang1033 pgAdmin 4\fs18\par
+\b\par
+Copyright (C) 2002 - 2016, The pgAdmin Development Team\b0\par
+
+\pard\qj Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.\par
+\par
+IN NO EVENT SHALL THE PGADMIN DEVELOPMENT TEAM BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE PGADMIN DEVELOPMENT TEAM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par
+\par
+THE PGADMIN DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE PGADMIN DEVELOPMENT TEAM HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.\par
+}
+
\ No newline at end of file
diff --git a/pkg/win32/Resources/pgAdmin4.ico b/pkg/win32/Resources/pgAdmin4.ico
new file mode 100644
index 0000000000000000000000000000000000000000..3fcebafdc9c16dedaf800066f84a3fb91a226ec1
GIT binary patch
diff --git a/pkg/win32/installer.iss.in b/pkg/win32/installer.iss.in
new file mode 100644
index 0000000..350d8fd
--- /dev/null
+++ b/pkg/win32/installer.iss.in
@@ -0,0 +1,114 @@
+#define MyAppName "0.0"
+#define MyAppVersion "0.0"
+#define MyAppPublisher "The pgAdmin Development Team"
+#define MyAppURL "www.pgadmin.org"
+#define MyAppExeName "pgAdmin4.exe"
+#define MyAppID "C14F64E7-DCB9-4DE1-8560-16F08FCFF64E"
+#define MyAppFullVersion "0.0"
+#define MyAppArchitecturesMode
+[Setup]
+AppId={#MyAppName}{#MyAppVersion}
+AppName={#MyAppName}
+AppVersion={#MyAppFullVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={pf}\{#MyAppName}\{#MyAppVersion}
+DisableWelcomePage=no
+DisableProgramGroupPage=yes
+LicenseFile=Resources\license.rtf
+OutputBaseFilename=setup
+SetupIconFile=Resources\pgAdmin4.ico
+Compression=lzma
+SolidCompression=yes
+PrivilegesRequired=admin
+ChangesEnvironment=yes
+;UninstallFilesDir={app}\{#MyAppVersion}
+ArchitecturesInstallIn64BitMode={#MyAppArchitecturesMode}
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+
+[Icons]
+Name: {group}\{#MyAppName}; Filename: {app}\runtime\{#MyAppExeName}; IconFilename: {app}\pgAdmin4.ico; WorkingDir: {app}; Comment: "{#MyAppName}";
+Name: {commondesktop}\{#MyAppName}; Filename: {app}\runtime\{#MyAppExeName}; IconFilename: {app}\pgAdmin4.ico; WorkingDir: {app}; Comment: "{#MyAppName}";
+
+[Files]
+Source: "Resources\SplashScreen.bmp"; DestDir: {tmp}; Flags: dontcopy
+Source: "win-build\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
+
+[Run]
+Filename: "{app}\runtime\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: runascurrentuser nowait postinstall skipifsilent
+
+[CustomMessages]
+english.NewerVersionExists=A newer version of {#MyAppName}
+
+[Registry]
+Root: HKLM; Subkey: "Software\{#MyAppName}\{#MyAppVersion}"; Flags: uninsdeletekeyifempty
+Root: HKLM; Subkey: "Software\{#MyAppName}\{#MyAppVersion}"; Flags: uninsdeletekey
+Root: HKLM; Subkey: "Software\{#MyAppName}\{#MyAppVersion}"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
+Root: HKLM; Subkey: "Software\{#MyAppName}\{#MyAppVersion}"; ValueType: string; ValueName: "Version"; ValueData: "{#MyAppFullVersion}"
+
+[Code]
+var
+  // Required for Splash Screen.
+  Splash  : TSetupForm;
+
+procedure CurStepChanged(CurStep: TSetupStep);
+var
+ value : string;
+ begin
+   if CurStep = ssInstall then begin
+     value := ExpandConstant('{app}') + '\ve_python\Lib\site-packages' + ';' +
+     ExpandConstant('{app}') + '\ve_python\Lib' + ';' +
+     ExpandConstant('{app}') + '\ve_python\Lib\lib-tk' + ';' +
+     ExpandConstant('{app}') + '\ve_python\DLLs';
+     RegWriteStringValue(HKEY_CURRENT_USER,'Software\pgAdmin Development Team\pgAdmin 4', 'PythonPath', value);
+ end;
+end;
+
+// find current version before installation
+function InitializeSetup: Boolean;
+var
+  Version: String;
+  BitmapImage1 : TBitmapImage;
+begin
+  Splash := CreateCustomForm;
+  Splash.BorderStyle := bsNone;
+  BitmapImage1 := TBitmapImage.Create(Splash);
+  BitmapImage1.AutoSize := True;
+  BitmapImage1.Align := alClient;
+  BitmapImage1.Left := 0;
+  BitmapImage1.Top := 0;
+  BitmapImage1.stretch := True;
+  BitmapImage1.Parent := Splash;
+  ExtractTemporaryFile('SplashScreen.bmp');
+  BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\SplashScreen.bmp');
+  Splash.Width := BitmapImage1.Width;
+  Splash.Height := BitmapImage1.Height;
+  Splash.Center;
+  Splash.Show;
+  BitmapImage1.Refresh;
+  Sleep(3000)
+
+  if RegValueExists(HKEY_LOCAL_MACHINE,'Software\{#MyAppName}\{#MyAppVersion}', 'Version') then
+    begin
+      RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\{#MyAppName}\{#MyAppVersion}', 'Version', Version);
+      if Version > '{#MyAppFullVersion}' then
+        begin
+          MsgBox(ExpandConstant('{cm:NewerVersionExists}' + '(v' + Version + ') is already installed' ), mbInformation, MB_OK);
+          Result := False;
+        end
+      else
+        begin
+          Result := True;
+        end
+    end
+  else
+    begin
+      Result := True;
+    end
+
+  Splash.Close;
+end;
\ No newline at end of file
