A fully cross-platform messenger app with End to End Encryption (E2EE).

Overview

Smartsapp

A fully cross-platform messenger app with End to End Encryption (E2EE).

Demo

NOTE: The features shown in the demo is not exhaustive. Only the core features are showcased in the demo.

Platforms Supported

  1. Desktop: Windows, Linux, MacOS
  2. Mobile: Android, iOS
  3. Website: Any device with a browser

Back-end Setup

The back-end of the app is handled by Firebase.

Basic Setup

  1. Go to firebase console and create a new project with the name Smartsapp
  2. Enable Google Analylitics

App Setup

  1. Create an App for the project from the overview page
  2. Copy and paste the configurations in the required location (given in the readme of the respective apps)

Auth Setup

  1. Go to the project Authentication section
  2. Select Sign-in method tab
  3. Enable Email/Password and Google sign in

Firestore Setup

  1. Go to the project Firestore section
  2. Create firestore provisions for the project (choose the server nearest to your location)
  3. Go to the Rules tab and use the fillowing rules:
    rules_version = '2';
    service cloud.firestore {
        match /databases/{database}/documents {
            match /contacts/{uid} {
                allow read, create, update: if request.auth != null;
            }
            match /keys/{uid} {
                allow read, create: if request.auth != null && request.auth.uid == uid;
            }
            match /messages/{msg} {
                allow read, create: if request.auth != null;
            }
            match /users/{uid} {
                allow read: if request.auth != null;
                allow create, update: if request.auth != null && request.auth.uid == uid;
            }
        }
    }
  4. Go to the Indexes tab and create the following index:
    {
        collection: "messages",
        fields: {
            users: Ascending,
            timestamp: Descending,
        },
        queryScope: Collection
    }

Storage Setup

  1. Go to the project Storage section
  2. Create storage provisions for the project (choose the server nearest to your location)
  3. Go to the rules tab and use the fillowing rules:
    rules_version = '2';
    service firebase.storage {
        match /b/{bucket}/o {
            match /profilepic/{uid} {
            allow read: if request.auth != null;
            allow create, update: if request.auth != null
                && request.auth.uid == uid
                && request.resource.size < 1024 * 1024
                && request.resource.contentType.matches('image/.*');
            }
            match /media/{media} {
            allow read: if request.auth != null;
            allow create: if request.auth != null
                && request.resource.size < 1024 * 1024
                && request.resource.contentType.matches('image/.*');
            }
        }
    }

Note

Running the E2EE Key Generator Server is necessary for all Platforms

You might also like...

Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

Jan 8, 2023

Cross platform terminal app from Visual Studio Code.

Cross platform terminal app from Visual Studio Code.

CodeTerminal Standalone terminal from Visual Studio Code. Installation macOS Highly recommanded to install with homebrew. brew tap xcodebuild/custom b

Dec 21, 2022

A cross-platform Node app that publishes a LogSeq journal as a blog via Drummer

myLogseqBlog A cross-platform Node app that publishes a LogSeq journal as a blog via Drummer How to install Download the app from the repo. It's a .zi

Jul 23, 2022

A cross-platform desktop app with a nice interface to Stable Diffusion and others

A cross-platform desktop app with a nice interface to Stable Diffusion and others

GenerationQ GenerationQ (for "image generation queue") is a cross-platform desktop application (screens below) designed to provide a general purpose G

Dec 28, 2022

📗 How to write cross-platform Node.js code

📗 How to write cross-platform Node.js code

How to write cross-platform Node.js code. Why you should care: according to the 2018 Node.js user survey, 24% of Node.js developers use Windows locall

Jan 3, 2023

A cross-platform AutoHotKey-like thing with TypeScript as its scripting language

suchibot A cross-platform AutoHotKey-like thing with JavaScript/TypeScript as its scripting language. Built on top of uiohook-napi and nut.js. Install

Sep 21, 2022

LucaMail - an Open Source,Cross Platform Email Client

LucaMail -  an Open Source,Cross Platform Email Client

LucaMail v0.0.1-beta An Awesome Cross Platform Email Client! Note : This Project Is Still in Beta Version Website . Report Bug . Request Feature . Dis

Dec 28, 2022

A cross-platform systray library for Deno.

A cross-platform systray library for Deno.

deno-systray A cross-platform systray library for Deno using the go systray library. Usage import SysTray from "https://deno.land/x/systray/mod.ts";

Jul 16, 2022

A cross-platform desktop application of tools for developers

A cross-platform desktop application of tools for developers

A cross-platform desktop application of tools for developers 🌏 Online Web This website provides online version of the same tools echoo 💻 Offline Cli

Dec 24, 2022
Owner
Derek Jones
Perfection is not attainable, but if we chase perfection we can catch excellence
Derek Jones
Onchain private messaging app with a significant encryption algorithm.

Hedwig DEMO We want to implement SSL technology to blockchain so decided to build onchain private messaging app. Diffie Hellman protocol was invented

İzzet Emre Demir 5 Nov 3, 2022
GetOsLocalesCrossPlatform - A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers

getOsLocalesCrossPlatform A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers This script is

null 1 Jan 2, 2022
Next-gen mobile first analytics server (think Mixpanel, Google Analytics) with built-in encryption supporting HTTP2 and gRPC. Node.js, headless, API-only, horizontally scaleable.

Introduction to Awacs Next-gen behavior analysis server (think Mixpanel, Google Analytics) with built-in encryption supporting HTTP2 and gRPC. Node.js

Socketkit 52 Dec 19, 2022
A Hackable Markdown Note Application for Programmers. Version control, AI completion, mind map, documents encryption, code snippet running, integrated terminal, chart embedding, HTML applets, plug-in, and macro replacement.

Yank Note A hackable markdown note application for programmers Download | Try it Online >>> Not ecommended English | 中文说明 [toc]{level: [2]} Highlights

洋子 4.3k Dec 31, 2022
A web watermark SDK, support: custom watermark content and style, watermark encryption and decryption, watermark anomaly monitoring, etc.

English | 简体中文 1. What is l-watermark? l-watermark is a web watermark SDK based on TS, which contains: Can cover more than scene watermarking method A

Liurx 23 Dec 10, 2022
Timelock Encryption made practical. A Typescript library for encrypting for the future.

tlock-js A typescript library for encrypting data which can only be decrypted at a set time in the future using drand. tlock-js uses AGE to symmetrica

drand 54 Dec 1, 2022
A small utility server to exchange data and messages between clients. Comes complete with E2E public key encryption

Zenotta Intercom A small utility server to exchange arbitrary data between clients. Comes complete with E2E public key encryption Official documentati

Zenotta AG 7 Oct 2, 2022
Package fetcher is a bot messenger which gather npm packages by uploading either a json file (package.json) or a picture representing package.json. To continue...

package-fetcher Ce projet contient un boilerplate pour un bot messenger et l'executable Windows ngrok qui va permettre de créer un tunnel https pour c

AILI Fida Aliotti Christino 2 Mar 29, 2022
A Chromium extension that enables users to use customizable :emoji: on Facebook/Facebook Messenger.

:emoji: for Messenger A Chromium extension that enables users to use customizable :emoji: on Facebook/Facebook Messenger. Install Download the extensi

null 4 Aug 31, 2022
A third-party messenger application for Path of Exile.

PoE Instant Messenger Download (Windows) The latest release can be downloaded here Tool showcase Theme Setup Notifier Messenger Settings Light Dark Co

Cedric 11 Jul 29, 2022