Android app to collect data to be analyzed for medical purposes.

Overview

Android app to collect medical data

Android app to collect data to be analyzed for medical purposes. Its development was started as part of a final degree project at UCM which can be found here: System to predict bipolar disorder crises analysing massive data by Ana María Martínez. This mobile app is being used in the project Bip4cast, in which data of patients from the San Juan de Dios hospital is being collected with the objective of improving the treatment of the bipolar disorder whose crises that can be avoided through early prediction.

Bip4cast.apk can be used to install the last stable version of the app in your Android device. In case that you want to set the project you should read the HOW TO guide. Screenshots of the application in a device with Android 6.0.1 can be seen in screenshots and screenshots_ES. Also, a video of the app in the same device can be seen in the following link: https://youtu.be/InZCw9WAZzI.

Main screen

Daily test

Android Studio is being used to develop the app. The Android Developers guide was used for writting the code.

Prototyping

The folder prototype_ES contains images of a prototype of the app done with JUSTINMIND. Also, two prototype videos of how the app will work can be se#en here: Daily use and Registration. Take into account that the prototype was done at the beginning of the development of the app and there are some differences between the app and the prototype as some changes has been introduced.

Main screen - prototype

Daily test - prototype

Requirements

Android 4.1 Jelly Bean or higher.

Code Style

This project adhere to the official Android Code Style Guidelines.

Authors

The development of this project was started by Ana María Martínez Gómez and you can see all contributors here: contributors. Nobody is reviewing pull requests at the moment, but in case that you want to develop this project by yourself you can read the HOW TO guide.

Licence

Code published under GNU GENERAL PUBLIC LICENSE v3 (see LICENSE).

Comments
  • issue #12 Add Location

    issue #12 Add Location

    What has been created:

    • GPSManager class that can handle the location, the permission to access the location.
    • Checkbox to activate or not the location in the ConfigurationActivity
    • Added latitude and longitude fields to the Sqlite in order to store those values.

    Need to do or future improvement:

    • update your mongodb database, maybe you want to create another Collection or not, that I don't know.
    • Like discussed, sending the location to the database even if the user do not sent the entire test, could be a good idea.

    Hope this can help! Do not hesitate to ask if you have questions. Niels

    opened by njacot 8
  • 7-rating questions have problem in some devices

    7-rating questions have problem in some devices

    This is how the daily test look like in my Samsumg GT-I9100 with Android 4.4.2:

    screenshot

    This is probably due to use shapes together with numbers. We may hide number in some devices with small screen or at least make them smaller.

    This will afect also 5-rating questions if the device screen was much smaller.

    bug high priority 
    opened by Ana06 2
  • Very high battery expenditure in location service

    Very high battery expenditure in location service

    Currently the location of the user is from time to time, only this consumes a lot of battery for the excessive use of GPS. Add a better solution than is left as possible implementation of the service.Branch with solution proposal

    opened by joaquinolivera 0
  • Add error message when there's no connection to Mongodb

    Add error message when there's no connection to Mongodb

    Currently, if there's no connection to the mongodb server, only an exception is shown in Android log. User has no information what's going on. Add a long Toast message indicating that server can't be reached, if that's the case. This error should be shown at login attempt, or registration attempt.

    enhancement PRs welcome 
    opened by alefq 0
  • Add gradle command line instructions to build application

    Add gradle command line instructions to build application

    In order to facilitate beta-testing or continuous integration, app should be compilable through command line. Instructions on how to do that should be added to Readme. Example:

    export ANDROID_HOME=/path/to/android/sdk
    
    git clone https://github.com/RocketChat/Rocket.Chat.Android.git
    cd Rocket.Chat.Android
    
    echo "sdk.dir="$ANDROID_HOME > local.properties
    
    ./gradlew assembleDebug
    
    
    enhancement PRs welcome 
    opened by alefq 0
  • Collect location periodically

    Collect location periodically

    Currently, we collect the location in the moment of sending the daily test.

    We want to collect the location periodically and to send it to the database as it can improve predictions significantly. We want to collect the location as frequently as possible without having a big impact in the battery. The best would be collecting it every 5 minutes, but this is probably not possible, so doing it every one hour, or more often if another app is using the location, would be more enough and more efficient.

    This data should be sent to the same MongoDB database than the daily test but to a different collection. It could be sent once a day for example. It can be sent together with the daily test, but if the daily test is not sent in a maximum of 4 days we should sent the location data to avoid losing information and to avoid that the app take up a lot of phone memory.

    enhancement high priority new feature 
    opened by Ana06 6
Owner
Ana María Martínez Gómez
:octocat: | Reverse Engineer @mandiant | MS in Computer Science @columbia University, Theory specialization | "La Caixa" fellowship holder | FOSS enthusiast
Ana María Martínez Gómez
Use Android Data Binding wih Live Data to glue View Model and Android

Gruop-C Spliff Summary Use Android Data Binding wih Live Data to glue View Model and Android. Asynchronous communications implemented with KotlinX Cor

null 2 Nov 21, 2021
Demo Spting REST Service on Kotlin. Works with PostgreSQL via Spring Data. Data initialization provided by liquibase

Spring Boot REST API with Kotlin Spring Boot REST API service. Spring Data with PostgreSQL. Data initialization with Liquibase. Swagger UI Reference D

null 0 Jun 10, 2022
Detailing about the data provided (Data Visualization Application)

Detailing about the data provided (Data Visualization Application): • In the application, the data provided in the CSV is used for the Scatter plot cr

Neha Sharma 0 Nov 20, 2021
Swarup 2 Feb 6, 2022
FirestoreCleanArchitectureApp is an app built with Kotlin and Firestore that displays data in real-time using the MVVM Architecture Pattern. For the UI it uses Jetpack Compose, Android's modern toolkit for building native UI.

FirestoreCleanArchitectureApp FirestoreCleanArchitectureApp is an app built with Kotlin and Cloud Firestore that displays data in real-time using Andr

Alex 66 Dec 15, 2022
A simple App which fetches data from NewYork times api and show news to the user

Stay-TheNewsApp This is a simple java app, which fetches data from NewYork times api and show news to the user, News can be seen from various categori

Gautam Garg 0 Dec 7, 2021
Space x app fetching data from api using apollographql, databinding, navigation components and hilt for DI.

Space-X Space-X is an android application that displays the list of launches from the Space-X API using ApolloGraphql inclusive of their launch site a

Ezra Kanake 3 Oct 16, 2022
Android Data Managment System Android UI - Kotlin- Firebase

DataManagmentSystem Data Managment System Android UI - Kotlin- Firebase Android Data Managment System App Design And Kotlin with Firebase The project

Burak Bilici 1 Jan 29, 2022
Starter code for Android Basics codelab - Store the data in a ViewModel

Unscramble App =================================== Starter code for Android Basics codelab - Store the data in a ViewModel Unscramble is a single pla

Исмоил 0 Nov 19, 2021
Starter code for Android Basics codelab - Store the data in a ViewModel

Unscramble App Starter code for Android Basics codelab - Store the data in a Vie

null 0 Dec 29, 2021
Solution code for Android Kotlin Fundamentals Codelab 8.1 Getting data from the internet

MarsRealEstateNetwork - Solution Code Solution code for Android Kotlin Fundamentals Codelab 8.1 Getting data from the internet Introduction MarsRealEs

DavidHieselmayr 1 Apr 7, 2022
Algorithms and data structures in Kotlin.

Here you can find the most common algorithms and data structures written in Kotlin. The goal of this project is to create the most eloquent implementa

Boris Maslakov 805 Dec 26, 2022
Small kotlin library for persisting _single instances_ of kotlin data classes

PerSista Small library for persisting single instances of kotlin data classes. NB: PerSista uses typeOf() internally which is marked as @ExperimentalS

Eric Donovan 5 Nov 13, 2022
A clean-aesthetically pleasing Measuring Application, which uses relevant sensors-converts raw sensor data into human readable formatted outputs-and displays accurate measurements.

Measure App A clean-aesthetically pleasing Measuring Application, which uses relevant sensors-converts raw sensor data into human readable formatted o

ACM Student Chapter, PESU ECC 1 Oct 15, 2021
Multi-thread ZX0 data compressor in Kotlin

ZX0-Kotlin ZX0-Kotlin is a multi-thread implementation of the ZX0 data compressor in Kotlin. Requirements To run this compressor, you must have instal

Einar Saukas 2 Apr 14, 2022
This repository is a simple humidity and temperature dashboard to present data from sensors on your phone

ChilliBook This repository is a simple humidity and temperature dashboard to present data from sensors on your phone. It uses Bluetooth LE and an ESP3

Alejandro Mera 1 Nov 8, 2021
An AutoValue extension that generates binary and source compatible equivalent Kotlin data classes of AutoValue models.

AutoValue Kotlin auto-value-kotlin (AVK) is an AutoValue extension that generates binary-and-source-compatible, equivalent Kotlin data classes. This i

Slack 19 Aug 5, 2022
Basic application that uses Retrofit, Moshi and Coil libraries to parse data from web API

DogAlbum_Api_CodeThrough Basic application that uses Retrofit, Moshi and Coil libraries to parse data from web API This folder contains the completed

Ayana Bando 0 Nov 9, 2021