Android application to coordinate family members (and not only). It has features such as shared tasks, members' location, emergency service with instant notifications and alerts history, family members recap.
Final project for the Mobile and social computing course at University of Oulu(FI) during academic year 2015-2016, my Erasmus+ period there.
I was experienced in Java, but not in Android development. That was my first try, and didn't go that bad. In the end, I scored third, and first considering only the code quality. Of course what it's bad is the UI, but I can't do that about it.
Basically I have had few time to implement the whole app, also because of other courses and other projects at the same time. My initial idea was to implement a mini REST server with which exchange messages, performing computation on server-side instead on client side. But time was running out, and the only solution I found, was a free MySQL service, so basically I implemented a DAO class which simulates the operations that the hypotetical server should have made available. As regard the features, we have:
- Members' locations: there is a service which starts as the user logs into the application and, if he doesn't log out, which also starts at boot time that get GPS coordinates every x seconds (that could be also set with a slider in the settings menu, I know...) and send them to the server to store them and make them available to other users. The same service also fetches, at a different rate, positions of the other family members to show them on the map, if the map screen is open. Of course, if there is no internet connectivity, the whole service gets useless.
- Alert function: another service which is started and stopped in the same way as the previous one. It starts when the user logs into the app or turns on the phone, and it gets stopped when the phone is turned of (of course) and when the user logs out from the app. Via the settings menu, it's possible to set an emergency number (may be different for each family member) that sends an alert (if there is internet connectivity) to all the other members of the family, showing a notification and, if clicked, opening directly the map view with a pin on the position of the member who sent the alert. This feature is always available in the phone, because I though that since it's used in emergencies, users may not have time to open the app and go anywhere to send the alert, so just make a call to the number (which will be closed) and wait for help!...
- Shared tasks: every member of the family can give a task to any other member, or leave it without completer so that the task could be completed by anyone. Every task has a title and a creator, and can have a place (pinned on the map) with its name, a completer, and an expiration date.
- Family and alerts recap: there are other two list views that show details of family members and alerts history, giving chanche to click on them and show them into the map.
The application is fully working, the only required thing to change is formed by the DB credentials, which have been obscured, into the class data/DAO.java
Link to youtube video