Safe is an open source mobile platorm to discretely capture incidents with ease, powered by an SMCE written in native Swift and Kotlin.

Overview

Logo

Safe

A powerful tool for personal and community safety.
joinsafe.me »

Available for iOS & Android
~ Links will be added once a release is available. ~

Safe is an open source mobile platorm to discretely capture incidents with ease, powered by a multithreaded compression engine (SMCE) written in native Swift and Kotlin.

NOTE: Safe is under active development, most of the listed features are still in testing and could be altered.

With the press of a button, begin to record your front camera, upload the footage to the cloud in real-time, track your exact location, notify your emergency contacts through SMS and Whatsapp, and alert 911 if necessary. Emergency contacts (and 911) will receive a video and location livestream of the incident while also getting access to key information such as realtime updates of your battery life.

Banner


Motivation

From the start, Safe was designed for the fragile situations where one's safety is the first, and most critical priority. For students, it acts as a necessary tool for alerting authorities of your wearabouts during a school shooting. For people of color, it's a discrete and all-encompassing documentation tool in the case of a traffic stop. Broadly, it seeks to expose injustice in any form it may present itself.

On a more personal note, I {Mark Music} have been devastated by the news of countless school shootings and instances of police brutality in the US. As a 17-year-old latino, gun violence (through school shootings) and other forms of physical discrimination pose a threat to me, my friends, and my family. Safe was built no one has to succumb to the status quo.

Infrastructure

An SMCE (multithreaded compression engine for sharded databases) is an agorithm designed to take realtime camera footage, cut it into digestable clips, and compress said clips across a variety of threads. These clips (shards) are then distributed across multiple storage layers; making it harder for a possible attacker to obtain a complete file. By processing the footage concurrently, the video is compressed, transcoded, and uploaded as the camera records in realtime. To compose the shards together, a map is stored with and ordered list of the paths to each shard. Concurrency also enables for smartphone CPUs to be used optimally by spawning isolates based on the thread availability. This enables for faster compression times in more powerful smartphones.

NOTE: The compression engine does not utilize FFMPEG as it is in many ways slow, bloated, and the GNU license can become an obstacle for commercial apps.

The SMCE algorithm was inspired by this Stanford paper titled "Accelerator Multi-Threading" (2012) by Nic McDonald, Subhasis Das, and Milad Mohammadi.

Diagram of Safe's SMCE implementation:

App Structure & Format

The Safe application houses most of its actual code in the lib directory. This includes all of the Dart / Flutter code such as screens and utils. The iOS (ios/Runner) and Android (android/app) folders both house the native components of the compression algorithm. These are connected to the flutter code through a bridge implemented in the lib folder.

Anything outside of the lib, ios, and android directory is generic files that come with every program, such as pubspec.yaml, .gitignore, the README.md, etc.

The Safe folder structure can be visualized in the following way:

| -lib
|   | -models
|   | -providers
|   | -services
|   | -core
|   | -state
|   | -screens
|   | -utils
|   | -widgets
|   | -main.dart
| -pubspec.yaml
| -.gitignore
| -.firebaserc
| -ios
| -android
| -LICENSE
| -README.md
| -other files

Developer Guide

Any help or contributions with Safe would be highly appreciated ❤️ . Feel free to help out and contribute to the future of personal and community safety.

Please refer to the contributing guide for how to install and run Safe from sources.

Have a question regarding any of these topics? Reach out to me at [email protected] or join our Discord Server and ask questions there 🙂

Contributors

Contributor Commits Tags
@markmusic27 210 Creator, Lead Maintainer
You might also like...

An unofficial Flutter plugin that wraps pusher-websocket-java on Android and pusher-websocket-swift on iOS

Pusher Flutter Client An unofficial Flutter plugin that wraps pusher-websocket-java on Android and pusher-websocket-swift on iOS. Get it from pub. How

Oct 21, 2022

An open-source unofficial GitHub mobile client, that aims to deliver the ultimate GitHub experience on mobile devices.

An open-source unofficial GitHub mobile client, that aims to deliver the ultimate GitHub experience on mobile devices.

DioHub for Github Summary Features Roadmap Support Screenshots Build Instructions Summary DioHub is an open-source unofficial GitHub mobile client, th

Jan 4, 2023

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

SwiftGen SwiftGen is a tool to automatically generate Swift code for resources of your projects (like images, localised strings, etc), to make them ty

Dec 31, 2022

Easily build your Widgets, Avoid parenthesis nesting, easy to build UI, A little like swift-ui.

Easily build your Widgets, Avoid parenthesis nesting, easy to build UI, A little like swift-ui.

tenon_mortise Easily build your Widgets, Avoid parenthesis nesting, easy to build UI, A little like swift-ui. Getting Started Usage To use this plugin

Dec 15, 2022

Toor makes service locators compile-time safe and easy to manage

🌱 What is Toor Toor makes service locators compile-time safe and easy to manage. 🚀 Getting Started Define your dependencies somewhere in the project

Jul 25, 2022

🚗 Apple CarPlay for Flutter Apps. Aims to make it safe to use apps made with Flutter in the car by integrating with CarPlay.

🚗 Apple CarPlay for Flutter Apps. Aims to make it safe to use apps made with Flutter in the car by integrating with CarPlay.

CarPlay with Flutter 🚗 Flutter Apps now on Apple CarPlay! flutter_carplay aims to make it safe to use iPhone apps made with Flutter in the car by int

Dec 26, 2022

A platform to make your social media experience more safe

cyber_watch A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

Feb 25, 2022

A web-safe implementation of dart.io.Platforms. Helps avoid the "Unsupported operation: Platform._operatingSystem" runtime error.

Universal Platform - A Web-safe Platform class Currently, if you include the dart.io.Platform anywhere in your code, your app will throw the following

Nov 20, 2022

Shared preferences typed - A type-safe wrapper around shared preferences, inspired by ts-localstorage

Typed Shared Preferences A type-safe wrapper around shared_preferences, inspired

Jan 31, 2022
Owner
Safe
A powerful tool for personal and community safety.
Safe
Mobile App for posting and reporting incidents around your area.

newsecurus A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

John Philip Dela Vega 1 Dec 8, 2021
A collaborative social reading platorm

A collaborative social reading platorm. The idea is for users to write next branches. This way it is possible to create an infinite amount of alternat

Killy IO 9 May 5, 2022
A Sample Flutter project to show how to integrate native kotlin code with flutter

kotlin_flashlight A Sample Flutter project to show how to integrate native kotlin code with flutter. Getting Started Visit this docs for Flutter setup

null 0 Apr 4, 2022
NetcastsOSS - Podcasts (netcasts) consumer app powered by open source software, by Flutter

Netcasts OSS Simple podcasts (netcasts) management powered by open source software Homepage Drawer Explore Discover Podcast Episodes Player Settings W

Mihir Patel 56 Sep 16, 2022
Mobile secure keyboard to prevent KeyLogger attack and screen capture.

Mobile secure keyboard to prevent KeyLogger attack and screen capture. Screenshots Alphanumeric Numeric Getting started To use this plugin, add flutte

null 20 Dec 22, 2022
A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and Dart.

OpenAuth A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and

Isaiah Collins Abetong 31 Oct 5, 2022
Ozzie is your testing friend. Ozzie will take an screenshot during integration tests whenever you need. Ozzie will capture performance reports for you.

ozzie.flutter Ozzie is your testing friend. Ozzie will take an screenshot during integration tests whenever you need. Ozzie will capture performance r

Jorge Coca 40 Nov 3, 2022
SeizeYourSpace - An App to capture details about folks interested in joining Publicis Sapient. Especially useful at events!

photo_job A simple app to take in candidate applications at a Conference Booth. This simplifies the work for a recruiter and eliminates the paper work

Pavan Podila 4 Jul 11, 2022
Color detection in images to capture presense of known objects.

swatch Color detection in images to capture presence of known objects. Why? There is great object and face detection software out there, but sometimes

Nicolas Mowen 35 Dec 7, 2022
This library allows you to create editable tables and spreadsheets with ease, either by providing initial row and column count to display an empty table or use it with predefined rows and column data sets.

Editable ⚡️ A highly customizable, editable table package for Flutter projects. Specs This package allows you to create editable tables and spreadshee

Godwin Asuquo 94 Dec 7, 2022