gaplo917 / teamwork-wrap-plus

Teamwork Wrap+ for Mac

Home Page:https://www.notion.so/gaplo917/Teamwork-Wrap-for-Mac-38c9dca7df304271bcc6c86ecf5f08be

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Simple Electron wrapper for https://teamwork.gtomato.com/.

Also bring in some interesting UI enhancements.

Enhancement

  • Dark Mode
  • Native Badges
  • Emoji Keyboard
  • Border-less Setting
  • Bold Username Setting
  • Bubble Display Date Setting
  • Ping Fang HK Font Setting
  • Noto Sans HK Font Setting
  • JF Open Huninn Font setting
  • Subpixel Antialiased Font Rendering Setting
  • [] Secure Local Lock
  • Draft Note Handling
  • Add useful shortcuts

Catch up with Chrome Web Features

  • Open Link to external URL
  • Native Chrome Spell Check
  • Simulate Chrome Right click handling
  • Auto save downloaded file to ~/Download folder without prompting dialog

Security

This project has spent extra efforts on achieving with the following electron settings that mitigated the risk of malicious code injection when teamwork.gtomato.com is compromised

  new BrowserWindow({
    width: 1024,
    height: 1024,
    webPreferences: {
      // security reason on running remote website
      nodeIntegration: false,
      // security reason on running remote website
      allowRunningInsecureContent: false,
      // security reason on running remote website
      enableRemoteModule: false,
      // Create a browser window with a sandboxed renderer.
      // With this option enabled, the renderer must communicate via IPC to the main process in order to access node APIs.
      // https://www.electronjs.org/docs/api/sandbox-option
      sandbox: true,
      contextIsolation: true,
      preload: path.join(app.getAppPath(), '../main/preload.js'),
    },
  })

Getting Started

A bare minimum project structure to get started developing with electron-webpack.

# Install
yarn install

# run application in development mode
yarn dev

# create production build. 
# You need a developer certificate and apple id account(check sample.env)
yarn dist:dir

Code Signing

Code signing is hard.

To build a smooth experience of a electron app to the end-user, developers need to do Notarize in order to pass through the Mac GateKeeper.

This project use electron-notarize. Details tutorial: https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/

About

Teamwork Wrap+ for Mac

https://www.notion.so/gaplo917/Teamwork-Wrap-for-Mac-38c9dca7df304271bcc6c86ecf5f08be

License:MIT License


Languages

Language:JavaScript 98.8%Language:CSS 1.2%