Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 72 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,77 @@
# Criptext Email React Client

This project manages the email client for desktop developed using Electron and React.
Finally, an email service that's built around your privacy. Get your @criptext.com email address and see what it's like to have peace of mind and privacy in every email you send.

The project contains subdirectories according to each module of the app:
## Features

- End-to-end Encryption: Criptext uses the open source Signal Protocol library to encrypt your emails. Your emails are locked with a unique key that‘s generated and stored on your device alone, which means only you and your intended recipient can read the emails you send.
- No data collection: unlike every other email service out there, Criptext doesn't store your emails in its servers. Instead, your entire inbox is stored exclusively on your device.
- Easy to use: our app is designed to work as simple as any other email app — so much so, you'll forget how secure it is.

## Contributing Bug reports

We use GitHub for bug tracking. Please search the existing issues for your bug and create a new one if the issue is not yet tracked!

## Dependencies

To build Criptext on your machine you'll need:

* Node.js (Recommended 8.12+)
* Yarn

## Run locally

Clone this repository and run a few scripts:

``` bash
git clone https://github.com/Criptext/Criptext-Email-React-Client
cd Criptext-Email-React-Client
node install.js # install dependencies
node start.js # Run locally
```

On some directories, like `email_login` it is recommended to have a .env file
with the following content:

```
SKIP_PREFLIGHT_CHECK=true
```
## Contributing Code

Contributions are welcome. This project contains subdirectories according to each module of the app:
* electron_app: contains the files needed to run electron and load the app views
* email_mailbox: contains the main view of the app which is made-up of the mailbox itself, settings, contacts, etc.
* email_composer: contains the view and code that handles the edition of a new email
* email_login: contains the view and code that handles user login
* email_loader: contains the view and code that handles loading views between modules
* email_composer: contains the view and code that handles the window that edits new emails.
* email_login: contains the views and code that handles user sign in and sign up.
* email_loader: contains the views and code that handles spinners and progress bars between window transitions.


The main application logic is the `electron_app` dir.
Before submitting any patches to the main application run the linter and tests:

``` bash
yarn lint # Run the linter
yarn test # Run unit tests
yarn integration # Run integrations
```

The other directories are React Apps built with [create-react-app](
https://github.com/facebook/create-react-app) used as the UI of the main
application. Please note that they won't work on the browser because they
require electron APIs. Once again, Before submitting any patches run the linter
and tests:

``` bash
yarn lint
yarn test
```

## Support

For troubleshooting and questions, please write us at <a href="mailto:support@criptext.com">support@criptext.com</a>

## License

Copyright 2018 Criptext Inc.

Licensed under the GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
2 changes: 1 addition & 1 deletion electron_app/src/validationConsts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const requiredMinLength = {
};

const requiredMaxLength = {
username: 255,
username: 16,
fullname: 255,
password: 255
};
Expand Down
1 change: 1 addition & 0 deletions email_composer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"react-trumbowyg": "^1.1.0"
},
"scripts": {
"postinstall": "node-sass-chokidar src -o src",
"build-css": "node-sass-chokidar src -o src",
"watch-css": "npm run build-css && node-sass-chokidar src -o src --watch --recursive",
"start-js": "react-scripts start",
Expand Down
1 change: 1 addition & 0 deletions email_dialog/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"react-scripts": "1.1.0"
},
"scripts": {
"postinstall": "node-sass-chokidar src -o src",
"build-css": "node-sass-chokidar src -o src",
"watch-css": "npm run build-css && node-sass-chokidar src -o src --watch --recursive",
"start-js": "react-scripts start",
Expand Down
1 change: 1 addition & 0 deletions email_loading/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"react-scripts": "1.1.0"
},
"scripts": {
"postinstall": "node-sass-chokidar src -o src",
"build-css": "node-sass-chokidar src -o src",
"watch-css": "npm run build-css && node-sass-chokidar src -o src --watch --recursive",
"start-js": "react-scripts start",
Expand Down
26 changes: 14 additions & 12 deletions email_login/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,29 @@
"private": true,
"dependencies": {
"crypto-js": "^3.1.9-1",
"node-sass-chokidar": "^0.0.3",
"npm-run-all": "^4.1.2",
"isemail": "^3.1.3",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-scripts": "1.1.0",
"validator": "^9.4.0"
"react-dom": "^16.2.0"
},
"scripts": {
"build-css": "node-sass-chokidar src -o src",
"watch-css": "npm run build-css && node-sass-chokidar src -o src --watch --recursive",
"start-js": "react-scripts start",
"start": "PORT=3005 npm-run-all -p watch-css start-js",
"build-js": "react-scripts build",
"build": "npm-run-all build-css build-js",
"start": "PORT=3005 react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"lint": "criptext-js-tools lint"
},
"proxy": "http://localhost:8000",
"devDependencies": {
"criptext-js-tools": "^0.5.0"
"criptext-js-tools": "0.7.2",
"node-sass": "^4.9.3",
"react-scripts": "2.0.3"
},
"homepage": "./"
"homepage": "./",
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
2 changes: 1 addition & 1 deletion email_login/src/App.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import TitleBar from './components/titleBar';
import LoginWrapper from './components/LoginWrapper';
import './app.css';
import './app.scss';

class App extends Component {
render() {
Expand Down
Loading