MCPcopy Index your code
hub / github.com/Criptext/Criptext-Email-React-Client

github.com/Criptext/Criptext-Email-React-Client @0.30.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.30.2 ↗ · + Follow
2,596 symbols 5,773 edges 593 files 11 documented · 0% updated 5y ago0.30.2 · 2020-10-13★ 7543 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Criptext Email React Client

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.

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! https://github.com/Criptext/Criptext-Email-React-Client/issues

Contributing Translations

We use Lokalise for translations. If you are interested in helping please write us at support@criptext.com

Dependencies

To build Criptext on your machine you'll need:

  • Node.js (Recommended 10.17.0+)
  • Yarn (Recommended 1.19.1+)

Run locally

Clone this repository and run a few scripts:

git clone https://github.com/Criptext/Criptext-Email-React-Client
cd Criptext-Email-React-Client
node install.js # Install dependenciess

To up all projects, got to each project and run:

yarn start # Run locally

First up the projects like email_* and last electrop_app

On all directories, like email_* it is recommended to have a .env file with the following content:

PORT=####
SKIP_PREFLIGHT_CHECK=true
REACT_APP_APPDOMAIN=criptext.com
REACT_APP_AVATAR_URL=https://api.criptext.com/user/avatar/

The project electrop_app the .env file should have this:

NODE_ENV=development
MAILBOX_URL=http://localhost:####
PIN_URL=http://localhost:####
LOGIN_URL=http://localhost:####
LOADING_URL=http://localhost:####
COMPOSER_URL=http://localhost:####
DEV_SOCKET_URL=wss://socket.criptext.com
DEV_SERVER_URL=https://api.criptext.com
DEV_DATA_TRANSFER_URL=https://transfer.criptext.com
CSC_IDENTITY_AUTO_DISCOVERY=true
DEV_APP_DOMAIN=criptext.com

Finally, you must build Alice. Alice is the signal protocol encryption service for desktop apps. You must build and run it to use the criptext electron client. For Linux or Mac Os systems follow the following steps to compile it. If you use Windows please refer to https://github.com/Criptext/Alice-Windows instead.

Steps to compile and run alice on Linux or MacOs: - enter db_interface - run bash ${your_os}_setup.sh - after completed, go to signal_interface folder - run bash installation/${your_os}/${your_os}_install_deps.sh - generate a binding gyp file. The easiest way is to just copy the ${your-os}/${your_os}_binding.gyp file to the root signal_interface folder and rename it as binding.gyp there. - Ensure that all the dependencies in the binding.gyp file exist in those paths. In case of something is wrong, feel free to modify the file. - install node-gyp (npm install -g node-gyp or yarn global add node-gyp) with root permissions. - run node-gyp configure build.

That would install and run Alice in your system.

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 window that edits new emails. * email_login: contains the views and code that handles user sign in and sign up. * email_loading: contains the views and code that handles spinners and progress bars between window transitions. * email_pin: contains the views and code that set encryption PIN.

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

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 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:

yarn lint 
yarn test 

Support

For troubleshooting and questions, please write us at support@criptext.com

License

Copyright 2018 Criptext Inc.

Licensed under the GPLv2: http://www.gnu.org/licenses/gpl-2.0.html

Core symbols most depended-on inside this repo

createClient
called by 63
electron_app/src/clientManager.js
sendError
called by 53
signal_interface/src/http/handlers/helpers.cpp
update
called by 51
electron_app/src/Account.js
checkExpiredSession
called by 46
electron_app/src/clientManager.js
addEvent
called by 45
email_mailbox/src/utils/electronEventInterface.js
removeEvent
called by 44
email_mailbox/src/utils/electronEventInterface.js
getDB
called by 43
electron_app/src/database/DBEmodel.js
PopupHOC
called by 31
email_mailbox/src/components/PopupHOC.js

Shape

Function 2,069
Class 288
Method 239

Languages

TypeScript93%
C++6%
C1%

Modules by API surface

email_mailbox/src/utils/ipc.js162 symbols
email_mailbox/src/utils/electronEventInterface.js106 symbols
electron_app/src/database/DBEmanager.js99 symbols
electron_app/src/database/DBManager.js84 symbols
electron_app/src/clientManager.js70 symbols
email_loading/src/utils/ipc.js62 symbols
electron_app/src/database/DBEmodel.js47 symbols
electron_app/src/database/DBEexporter.js47 symbols
email_composer/src/utils/ipc.js38 symbols
electron_app/src/globalManager.js31 symbols
electron_app/src/Account.js29 symbols
email_mailbox/src/actions/threads.js28 symbols

For agents

$ claude mcp add Criptext-Email-React-Client \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact