All Projects → ruppysuppy → SmartsApp

ruppysuppy / SmartsApp

Licence: MIT license
💬📱 An End to End Encrypted Cross Platform messenger app.

Programming Languages

typescript
32286 projects
dart
5743 projects
CSS
56736 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to SmartsApp

onepile
Playground for the future of private notes and document management
Stars: ✭ 41 (-40.58%)
Mutual labels:  webapp, end-to-end-encryption
Seven23
Fully manual budget app to track personal expenses. 100% opensource, with privacy by design.
Stars: ✭ 36 (-47.83%)
Mutual labels:  webapp, end-to-end-encryption
Briefing
Secure direct video group chat
Stars: ✭ 710 (+928.99%)
Mutual labels:  webapp, end-to-end-encryption
pass-culture-app-native
Mobile and web application for pass Culture
Stars: ✭ 18 (-73.91%)
Mutual labels:  mobile-app, webapp
FD-Daily-Task
Create responsive dashboard Daily Task design using Flutter
Stars: ✭ 181 (+162.32%)
Mutual labels:  desktop-app, mobile-app
svelte-electron-boilerplate
🧬 Create a desktop app with this user-friendly Svelte boilerplate for electron
Stars: ✭ 70 (+1.45%)
Mutual labels:  desktop-app, webapp
Wire Webapp
👽 Wire for web
Stars: ✭ 982 (+1323.19%)
Mutual labels:  webapp, end-to-end-encryption
Piggyvault
Family finance management app.
Stars: ✭ 152 (+120.29%)
Mutual labels:  mobile-app, webapp
React Native Open Project
可能是目前最用心收集的 React Native 优秀开源项目大全,公众号【aMarno】www.marno.cn
Stars: ✭ 2,254 (+3166.67%)
Mutual labels:  mobile-app, webapp
webviewhs
🌐 A Haskell binding to the webview library created by Serge Zaitsev.
Stars: ✭ 109 (+57.97%)
Mutual labels:  desktop-app, webapp
Zmninja
High performance, cross platform ionic app for Home/Commerical Security Surveillance using ZoneMinder
Stars: ✭ 762 (+1004.35%)
Mutual labels:  desktop-app, mobile-app
HerokuContainer
Dockerized ASP.NET Core Web API app in Heroku
Stars: ✭ 26 (-62.32%)
Mutual labels:  webapp
joplin-note-tabs
Allows to open several notes at once in tabs and pin them.
Stars: ✭ 150 (+117.39%)
Mutual labels:  desktop-app
tksweb
Web-based timesheeting system that exports TKS files
Stars: ✭ 15 (-78.26%)
Mutual labels:  webapp
joplin-plugin-hotfolder
A plugin to Monitor a locale folder and import the files as a new note.
Stars: ✭ 24 (-65.22%)
Mutual labels:  desktop-app
azure-sdk-for-python-keyvault-secrets-get-set-managedid
How to set and get secrets from Azure Key Vault with Azure Managed Identities and Python
Stars: ✭ 13 (-81.16%)
Mutual labels:  webapp
team
Free Knowledge Groupware
Stars: ✭ 63 (-8.7%)
Mutual labels:  webapp
readis
Lightweight web frontend in PHP for reading data, stats and config from multiple redis servers.
Stars: ✭ 38 (-44.93%)
Mutual labels:  webapp
musicont
React Native & Expo music player application UI
Stars: ✭ 72 (+4.35%)
Mutual labels:  mobile-app
code-generator
Web Application to generate your training scripts with PyTorch Ignite
Stars: ✭ 30 (-56.52%)
Mutual labels:  webapp

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].