Giter Site home page Giter Site logo

rajeshwar-cloud / webclient Goto Github PK

View Code? Open in Web Editor NEW

This project forked from protonmail/webclients

0.0 1.0 0.0 29.75 MB

Official AngularJS web client for the ProtonMail secure email service.

Home Page: https://protonmail.com

License: Other

Makefile 0.01% JavaScript 76.67% HTML 14.24% CSS 8.94% Shell 0.14%

webclient's Introduction

ProtonMail Web Client

CircleCI

Official AngularJS web client for the ProtonMail secure email service. ProtonMail also makes use of OpenPGPjs as our message cryptography is PGP compliant.

Translation

We are currently working with our community to localize ProtonMail from English to most of the world's major languages. If you're interested in being part of this translation project, send us an email to [email protected] with the subject line "ProtonMail Translation Project [Your Language]" and we will offer you more information about it.

Basic Installation

  • npm install
  • npm start

dependencies

  • Node.js >= v8
  • npm 5
  • git

About npm install

This command will run as a hook postinstall,

  • tasks/privateDependencies.sh: Custom vendor

Error with Mac

You need to install a few dep in order to be able to deploy

brew install libpng

or brew upgrade libpng if you already have the lib

If you have docker, and prefer to not install node (or anything else) locally

  • make start to start the app on a container (use make localurl to find the url where it's running)
  • make test to build the app (actual tests are still to come)

There is a very good chance you won't be able to use the app locally because of various security headers and such. But you should be able to get the code running enough to poke around and inspect it.

We are still in Beta and will have a more refined build process, installation instructions, unit tests, and all that good stuff once we exit Beta.

Development

We are very open to bug reports via Issues as well as Pull Requests.

CI build - no minify

npm run build

Same as npm start use --api to change the default api

CI build for e2e

npm run build:ci

Same as npm start use --api to change the default api

Custom command

npx appComponent
npm run create

cf Component Generator

Deploy

  1. Create a new version + tag => npm version (patch|minor|major).
  2. Deploy via npm npm run deploy -- --api=X --branch=Y.
    • X is the API version available in API_TARGETS in the env/config.js file
    • Y can be deploy-dev, deploy-beta, deploy-prod-a or deploy-prod-b.

Each deploy-<NAME> will be available at <NAME>.protonmail.com.

npm run deployProd will deploy the bundle for both prod, old, dev and tor

CLI Flags

  • --branch : Deploy branch dest
  • --api : Set an API for the app (dev, live, etc.)
  • --debug: turn on debug mode for the command (default false)

I18n à la demande

Extract translation keys

npm run i18n:extract

We build i18n when we create a build for beta or prod

npm run i18n:build

It will do everything you need. Import new translations first for a better result ;)

Release notes

Extract markdown

NOTE: In order to generate the release notes you need to set the RELEASER_GH_TOKEN environment variable.

To generate release notes for the latest version (tag), run the following command:

npm run releaser:extract

To generate release notes for a specific version (tag), run:

npm run releaser:extract -- --tag v3.12.24

The release notes are outputted to stdout. Those notes have to be manually inserted to CHANGELOG.md.

It is also possible to run the following command to automatically unshift the output from releaser into CHANGELOG.md

npm run releaser:unshift

Generate HTML file

The HTML file from the CHANGELOG.md file is automatically generated when running start or dist. It takes the markdown file and generates the HTML file at ${build}/assets/changelog.tpl.html which will be dynamically fetched when the modal opens.

Commit naming conventions

For a fix linked to an issue number:

  • (Fix|Close|Resolve) #ISSUENUMBER (multiple allowed, separated by comma)

For a hotfix not linked to any issue:

  • Hotfix - Description

Any commits that follow this convention will be included in the release notes generator.

For fixes linked to an issue, the description will be taken from GitHub and grouped according to if it has the Bug or Feature label.

For hotfixes, the description in the commit name will be included in the release notes under the group Others.

Branch naming conventions

For a fix

  • fix/<your feature>

For a feature

  • feat/<your feature>
  • or feature/<your feature>

Tests

npm test

To edit test it's better to run npm run testwatch (tests with a watcher)

End to end testing for AngularJS

Based on The Amazing Cypress.

Dev: npx cypress open or npm run cypress:open

CI:

npm run e2e

License

Copyright (c) 2013-2018

Proton Technologies A.G. (Switzerland)

Email: [email protected]

License: https://github.com/ProtonMail/WebClient/blob/public/license.md

webclient's People

Contributors

epokk avatar dhoko avatar buildog avatar mmso avatar kaylukas avatar bafs avatar emersion avatar jasonstockman avatar gereeter avatar sanjanarajan avatar n4m3z avatar kaplun avatar eliovir avatar

Watchers

rajeshwar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.