TICE is a secure app for meeting up, sharing locations and locating friends and family in real-time.

Overview

TICE

TICE – Secure GPS Location Sharing with Friends

License Sponsors

The secure app for meeting up, sharing locations and locating friends and family in real-time. TICE allows live location sharing on iOS, Android and the Web. Privacy by Design and modern end-to-end-encryption protect the sensitive location data from others.

Screenshots

Register Meeting up in a group Join several groups Settings

Download

Get it on F-Droid Get it on Google Play

Open Source Development Goals

TICE is a simple but powerful tool to share you location in real time with friends, family and others. Knowing the location of others can be an efficient way for meeting up, it can help find each other and provides a safe way to know, a close friend or family reaches their destination safely.

1. Security and transparency

As location information tells a lot about the person, access to it needs to be safeguarded. TICE therefor tries to find a good balance between a practical tool and a safe place for its users location, messaging and meta data. TICE follows the privacy by design path. This means, that we collect only the minimal amount of information needed, encrypting sensitive data in a way that we don't have access to it and be transparent by disclosing the source code behind TICE.

2. Grow further

We put a lot of effort into TICE. By open sourcing it, we want it to grow even further – instead of getting stuck. As the company behind TICE, we will focus on other projects in the future. That is why TICE needs you and your contribution.

3. Feature rich & living

TICE should be a living project and improve over time. The distributed apps over the app stores should always be up to date and accompany the operating system development. There are a lot of features missing from TICE and we want to build those together with the open source community.

Contribute to TICE

This section explains, where and how you can contribute to TICE.

Build instructions

TICE Android has several dependencies. It is using brew, ruby gems and Gradle for the dependency management.

Install all dependencies

$ make all

Just open the project directory in Android Studio and you can start right away. The submodules Server and CnC are not needed to build, run and unit test the application.

Run the unit tests from the command line on the development machine

$ ./gradlew testDevelopmentDebugUnitTest

However, some of the unit tests are executed as instrumentation tests because they need to use the Android framework.

Architecture

TICE Android represents the Android app for TICE. It interacts with the TICE server (backend) by using a JSON REST API.

TICE uses dependency injection via initializers and specifies protocols (SomeManagerType) for classes to allow passing mocked objects for easier testing.

The UI code of TICE uses different design architectures. For complex views and for better testability, it mostly follows a Model-View-ViewModel (MVVM) style.

Requirements

  • Android Studio 4+
  • Android API-Level 21+

Beta testing

To help with testing new app updates, TICE on Android has a pre-release version: TICE Preview. Beta builds that needs excessive testing. Testing TICE Preview could render user data as unusable, so prepare to re-install when necessary. This app is isolated from the normal TICE app and its environment, so groups and users created only exist in the corresponding app.

Join TICE Preview via Google Play

Install the TICE Preview app

You will receive beta app updates through the Google Play Store.

Bugs

File any bugs you find by filing a GitHub issue with:

  • Device information
  • Repro steps
  • Observed behavior (including screenshot / video when possible)
  • Timestamp and email address used to send the logs (see below)
  • Expected behavior

and send the logs in the app via Settings -> Give Feedback via e-mail.

License

Core Collaborators

Copyright

Copyright © 2019 TICE Software UG (haftungsbeschränkt). All rights reserved.

The source code is licensed under GNU General Public License v3.0. TICE is a registered trademark of the TICE Software UG (haftungsbeschränkt).

Comments
  • Add captcha registration method

    Add captcha registration method

    This adds a new way of registering by solving a captcha which eliminates the Firebase Messaging Service as a requirement. It's another step towards the support of Android devices without Google Play Services enabled.

    opened by FabioTacke 7
  • Independence from Google Play Services

    Independence from Google Play Services

    The app still relies on Google Play Services is Push via Firebase when registering initially. We are currently investigating alternative methods in order to drop the requirement for Google Play Services.

    Besides Google Maps needs to be replaced by another service.

    enhancement 
    opened by FabioTacke 3
  • Re-enable certificate validation

    Re-enable certificate validation

    Certificate validation has been disabled for making the transition to the new certificate format easier. Should now be re-enabled for specific member actions.

    bug 
    opened by FabioTacke 1
  • Tracking call SessionStart does not count as install

    Tracking call SessionStart does not count as install

    Our beekeeper tracking shows, that since build number 30, there is a problem in sending out SessionStart, when the user installed TICE and opened the app the first time. We are missing all calls of SessionStart where the parameter last is set to null, meaning they never had a session before. There are calls with SessionStart where last is set.

    bug 
    opened by ChaosCoder 0
  • Check server-side enforced limits in the client

    Check server-side enforced limits in the client

    The server limits groups to a specific number of members and messages to a specific size. We should handle those limits in the client app by mentioning them transparently and enforcing them.

    bug 
    opened by FabioTacke 0
  • Crypto library unmaintained

    Crypto library unmaintained

    The obscure libsodium port hasn't been maintained for 9 months as of this writing and the website hosting its documentation has been down for months even though the problem was reported back in June.

    Maybe take a look at https://noiseprotocol.org/

    I also don't understand why the server source code isn't released. That makes me not want to use this application since I can't realistically rely on this tiny organization existing in the future and as soon as the server goes down the whole thing becomes useless.

    opened by Juul 0
  • Can't create or join group

    Can't create or join group

    Steps to reproduce (create group):

    • Downloaded app fresh from F-Droid (v2.3)
    • Typed a name
    • Landed on an empty Groups view
    • Pressed (+), landed on Create Group view
    • Added a group name (e.g. group) and pressed Continue
    • Got message: "Creating group failed."

    Steps to reproduce (join group):

    • Got a group invite link from another user
    • Opened link, app opens
    • Got message "Processing group URL failed."

    Expected behavior: to have a group

    Log: log.txt

    opened by leandroferreira 0
  • Add alternate map tile providers

    Add alternate map tile providers

    F-Droid version of TICE requires manually filling a Mapbox access token, but it's nowhere trivial to get one. Mapbox account registration requires giving out credit card number, which is not great for privacy or accessibility. Add some other map providers which don't need that.

    A quick search brings up this: https://github.com/Leaflet/Leaflet/issues/6336 There's also this example implementation of map viewer with multiple backends: https://osmdroid.github.io/osmdroid/

    opened by thjderjktyrjkt 0
  • Add option to download a local copy of the map

    Add option to download a local copy of the map

    I've noticed that every time I close and re-open Tice, it re-downloads the map of the area around me. It would be nice to be able to download and store the map on my device so it doesn't use as much data. Perhaps it could fetch and update the map only when connected to wifi?

    opened by analpi 1
  • GPS is always on

    GPS is always on

    The GPS access is on whenever the app is active according to this issue: https://github.com/TICESoftware/TICE/issues/7

    We should make sure to only activate GPS when TICE needs it (we share our location).

    enhancement 
    opened by ChaosCoder 1
Owner
TICE Software
TICE Software
Create an application with Kotlin/JVM and Kotlin/JS, and explore features around code sharing, serialization, server- and client

Practical Kotlin Multiplatform on the Web 본 저장소는 코틀린 멀티플랫폼 기반 웹 프로그래밍 워크숍(강좌)을 위해 작성된 템플릿 프로젝트가 있는 곳입니다. 워크숍 과정에서 코틀린 멀티플랫폼을 기반으로 프론트엔드(front-end)는 Ko

SpringRunner 14 Nov 5, 2022
Create an application with Kotlin/JVM and Kotlin/JS, and explore features around code sharing, serialization, server- and client

Building a Full Stack Web App with Kotlin Multiplatform 본 저장소는 INFCON 2022에서 코틀린 멀티플랫폼 기반 웹 프로그래밍 핸즈온랩을 위해 작성된 템플릿 프로젝트가 있는 곳입니다. 핸즈온 과정에서 코틀린 멀티플랫폼을

Arawn Park 19 Sep 8, 2022
Account-Touch is a simple account-sharing service.

account-touch A-Touch is a simple account-sharing service. feature user & permission Create an user with a nickname and emoji account You can see the

Euphony 2 Aug 4, 2022
A smart colored time selector. Users can select just free time with a handy colorful range selector.

Colored Time Range Selector A smart colored time range selector. Users can select just free time with a handy colorful range selector. Screen Shots Fe

Ehsan Mehranvari 154 Oct 3, 2022
WorkManager ,One time,Sequential Execution, Periodic time Execution

WokManagerSample WorkManager ,One time,Sequential Execution, Periodic time Execu

Chhote Lal Pal 0 Dec 21, 2021
A secure, opensource android app to store your bank accounts, cards, and credentials. Locally and securely.

Digital Tijori ?? Digital Tijori app lets you store your bank accounts, cards and credentials. You can link cards and credentials to a particular bank

Harsh Nandwani 8 Aug 26, 2022
Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted on AppEngine.

Conferences4Hall Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in K

Gérard Paligot 98 Dec 15, 2022
[Android Library] Get easy access to device information super fast, real quick

DeviceInfo-Sample Simple, single class wrapper to get device information from an android device. This library provides an easy way to access all the d

Anitaa Murthy 193 Nov 20, 2022
Example of migrating from Dagger to Hilt with a real service/repository example

DaggerToHilt Overview This repo provides a real example of using Hilt for dependency injection. It hits endpoints provided by the Movie Database, and

null 0 Nov 29, 2021
Utility for developers and QAs what helps minimize time wasting on writing the same data for testing over and over again. Made by Stfalcon

Stfalcon Fixturer A Utility for developers and QAs which helps minimize time wasting on writing the same data for testing over and over again. You can

Stfalcon LLC 31 Nov 29, 2021
Clean MVVM with eliminating the usage of context from view models by introducing hilt for DI and sealed classes for displaying Errors in views using shared flows (one time event), and Stateflow for data

Clean ViewModel with Sealed Classes Following are the purposes of this repo Showing how you can remove the need of context in ViewModels. I. By using

Kashif Mehmood 22 Oct 26, 2022
Type-safe time calculations in Kotlin, powered by generics.

Time This library is made for you if you have ever written something like this: val duration = 10 * 1000 to represent a duration of 10 seconds(in mill

Kizito Nwose 958 Dec 10, 2022
A fork of our clean architecture boilerplate, this time using the Android Architecture Components

Android Clean Architecture Components Boilerplate Note: This is a fork of our original Clean Architecture Boilerplate, except in this repo we have swi

Buffer 1.3k Jan 3, 2023
A Kotlin Native program to show the time since a date, using Kotlin LibUI

TimeSince A Kotlin Native program to show the time since a date, using Kotlin LibUI Report Bug . Request Feature About The Project TimeSince is a Kotl

Russell Banks 2 May 6, 2022
Add Wheel Date - Time Picker in Android Jetpack Compose.

WheelPickerCompose Add Wheel Date - Time Picker in Android Jetpack Compose. Usage Picker Usage WheelDateTimePicker { snappedDateTime -> } WheelDatePic

Emir Demirli 81 Dec 30, 2022
Crunch-Mobile - A Food Delivery Mobile App which uses Modern App Architecture Pattern, Firebase And a Simple Restful Api

Crunch-Mobile This is a Food Delivery Mobile App which uses Modern App Architect

Bright Ugwu 1 Jan 1, 2022
A beautiful Fashion Store like Android App Mock built on Jetpack Compose with compose navigation, hilt, dark theme support and google's app architecture found on uplabs Here

A beautiful Fashion Store like Android App Mock built on Jetpack Compose with compose navigation, hilt, dark theme support and google's app architecture found on uplabs Here

Puncz 87 Nov 30, 2022
Name of your app is an android app that allows building a todo list

Project 1 - SimpleToDo Name of your app is an android app that allows building a todo list and basic todo items management functionality including add

Javier Nazario 0 Nov 23, 2021
Matches-simulator-app - App Android Nativo de Simulação de Partidas

Matches Simulator App App Android Nativo de Simulação de Partidas. Este repositório foi organizado em algumas branches que representam as implementaçõ

DIO 127 Dec 28, 2022