GitXplorerGitXplorer
r

SmartsApp

public
117 stars
30 forks
0 issues

Commits

List of commits on branch master.
Verified
c75b34f3707c6b62bef039f292cfa32d31c1346e

Merge pull request #3 from saireddythfc/patch-1

rruppysuppy committed a year ago
Verified
070d8fee0564d937550b9e78682c0c3d4e96ded3

Update README.md

ssaireddythfc committed a year ago
Unverified
ee5d259e1b282532368c6698e8cc5a41cfe2983d

refactor: update oauth signin

rruppysuppy committed 2 years ago
Unverified
b6373423a21e16466d7c9b43d1693ced6a498a8f

fix(web-app): fixed theme color

rruppysuppy committed 4 years ago
Unverified
5939281d612a2aad93e417d9f58d4a3752812c1e

feat(web-app): added deffered-prompt for pwa installation

rruppysuppy committed 4 years ago
Unverified
18038fc645edcf78af89ea38e89f09e2dfb285cb

feat(web-app): added service worker

rruppysuppy committed 4 years ago

README

The README file for this repository.

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