Git Product home page Git Product logo

productivitymapping's Introduction

Study Mapper

codebeat badge Codacy Badge

Android app to improve productivity during study. Links with it's server component Study Mapper (Server)

Built for the University of Nottingham as a final year BSc Computer Science project.

In order to build this project, you must place an environment_variables.xml in app/src/main/res/values/environment_variables.xml. This must contain a Google Maps Android API key.

app/src/main/res/values/environment_variables.xml

<resources>
    <!--
        Server side API key
    -->
    <string name="api_key">
        my_secret_password
    </string>

    <!--
        URL to the API server.
    -->
    <string name="api_server_url">
        http://harrys_server.com/~username/folder/api/v1
    </string>

    <!--
        Google Maps API key for project
    -->
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
        AInbaiA_iansdinasidnaisbdBKSYBDkASdbSHB
    </string>
</resources>

Uses the following technologies.

How to Build

build.gradle

dependencies {
    testCompile 'junit:junit:4.12' // For tests
    compile 'com.android.support:appcompat-v7:22.0.0' // Android design
    compile 'com.google.android.gms:play-services-maps:8.4.0' // Google Maps API
    compile 'com.google.android.gms:play-services-location:8.4.0' // Google Location API
    compile 'com.google.maps.android:android-maps-utils:0.4' // Android Google maps Utility library
    compile 'com.android.volley:volley:1.0.0' // A HTTP request library so we can interact with our API
}

productivitymapping's People

Contributors

harrymt avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

productivitymapping's Issues

Create new zone

  • Change how to set new apps, to a list view rather than csvs
  • Add the app icon to the list of apps to block
  • If keyword field is blank then zone wont save, fix this!

Geofencing

  • Draw circle radius on map
  • Draw text next to radius
  • Store geofence data
  • Be able to edit geofence
    • Add button called Edit, for each zone in Zones fragment
    • Open up ZoneEditAcitivity for that zone, on button press
    • Edit the ZoneEditActivity so it is loaded with the zone
    • Save that zone on save button press
    • Refresh the Zones list when the Save button is pressed on the ZoneEditActivity for a new or current Zone

Database

  • Create db structure
  • Save everything to db
    • Save Session
    • Save Notification
    • Save Zone details
  • Load everything from db
    • Load general stats
    • Load Zone

Create last session activity

  • Display stats in last session activity
  • On study stop, show button for last session
  • Last session button click opens last session activity

Display all geofences to user

  • Display all geofences on 'create new zone' map
  • Display productivity percentages for each geofence
  • Try using static maps

Detect user in zone

  • Track Location every x seconds in memory
  • Detect if a user is in a geofence using tracked location

General UI changes

  • Display current time
  • If user clicks on current zone, enable study
  • If users current location is in a zone, enable current zone button
  • Display zone preferences and force stop study buttons on study
  • Move text to 'studying...' on study state

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.