text: 
  // Main Process
  const { app, BrowserWindow, Menu, ipcMain, Notification } = require('electron');
  const path = require('path');
  const isDev = !app.isPackaged;
  const log = require('electron-log');
  const {autoUpdater} = require("electron-updater");
  
  
  //-------------------------------------------------------------------
  // Logging
  //
  // THIS SECTION IS NOT REQUIRED
  //
  // This logging setup is not required for auto-updates to work,
  // but it sure makes debugging easier :)
  //-------------------------------------------------------------------
  autoUpdater.logger = log;
  autoUpdater.logger.transports.file.level = 'info';
  log.info('App starting...');
  
  
  //-------------------------------------------------------------------
  // Define the menu
  //
  // THIS SECTION IS NOT REQUIRED
  //-------------------------------------------------------------------
  let template = []
  if (process.platform === 'win32') {
    // OS X
    const name = app.getName();
    template.unshift({
      label: name,
      submenu: [
        {
          label: 'About ' + name,
          role: 'about'
        },
        {
          label: 'Quit',
          accelerator: 'Ctrl+Q',
          click() { app.quit(); }
        },
      ]
    })
  }
  
  //-------------------------------------------------------------------
  // Open a window that displays the version
  //
  // THIS SECTION IS NOT REQUIRED
  //
  // This isn't required for auto-updates to work, but it's easier
  // for the app to show a window than to have to click "About" to see
  // that updates are working.
  //-------------------------------------------------------------------
  let win;
  
  function sendStatusToWindow(text) {
    log.info(text);
    win.webContents.send('message', text);
  }
  
  function createWindow() {
    // Browser Window <- Renderer Process
      win = new BrowserWindow({
      width: 1200,
      height: 800,
      backgroundColor: "white",
      webPreferences: {
        nodeIntegration: false,
        worldSafeExecuteJavaScript: true,
        contextIsolation: true,
        preload: path.join(__dirname, 'preload.js')    }
    })
  
    win.loadFile('index.html')
    isDev && win.webContents.openDevTools();
  }
  
  if (isDev) {
    require('electron-reload')(__dirname, {
      electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
    })
  }
  
  //app.whenReady().then(createWindow);
  
  ipcMain.on('notify', (_,message) => {
    new Notification({title: 'Notification', body: message}).show();
  })
  
  app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
      app.quit();
    }
  })
  
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  })
  
  
  autoUpdater.on('checking-for-update', () => {
    sendStatusToWindow('Checking for update...');
  })
  autoUpdater.on('update-available', (info) => {
    sendStatusToWindow('Update available.');
  })
  autoUpdater.on('update-not-available', (info) => {
    sendStatusToWindow('Update not available.');
  })
  autoUpdater.on('error', (err) => {
    sendStatusToWindow('Error in auto-updater. ' + err);
  })
  autoUpdater.on('download-progress', (progressObj) => {
    let log_message = "Download speed: " + progressObj.bytesPerSecond;
    log_message = log_message + ' - Downloaded ' + progressObj.percent + '%';
    log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')';
    sendStatusToWindow(log_message);
  })
  autoUpdater.on('update-downloaded', (info) => {
    sendStatusToWindow('Update downloaded');
  });
  
  app.on('ready', function() {
    // Create the Menu
    const menu = Menu.buildFromTemplate(template);
    Menu.setApplicationMenu(menu);
    createWindow();
  });
  
  //
  // CHOOSE one of the following options for Auto updates
  //
  
  //-------------------------------------------------------------------
  // Auto updates - Option 1 - Simplest version
  //
  // This will immediately download an update, then install when the
  // app quits.
  //-------------------------------------------------------------------
  app.on('ready', function()  {
    autoUpdater.checkForUpdatesAndNotify();
  });
  
  
  // Chromium -> web eingine for rendering the UI, full Chrome-like web browser
  // V8 -> engine that provides capabilities to execute, run, JS code in the browser
  // Node JS(V8) -> we are able to run JS code + provides more features
  
  // Webpack -> is a module builder, main purpose is to bundle JS files for usage in the browsert
  // Babel -> js a JS compiler
  
  // const { app, BrowserWindow } = require('electron');
  