Skip to content

gkffzs/TAVOO

Repository files navigation

TAVOO

This repository contains the files for TAVOO, a free software Android application that I partially developed as part of my diploma thesis (as an undergraduate student of the Computer Engineering & Informatics Department at the University of Patras).

The main goal of my thesis was the improvement of the cohabitation between humans and pets, with the aid of modern technology and its ability to have a positive impact towards that goal, but also with the active participation of users themselves. So, this mobile application was designed and partially developed, according to the principles of human-centered design and with the user's opinion and experience in mind, on every stage of the process.

Version 0.6

This is the pre-alpha version of the application (numbered 0.6), so there are a lot of things to be done, till it's properly completed. Due to the nature of the whole design and development of the application, I believe that only through collaboration and more active participation of the users is there a future for this application. That is why I decided from the start that it would be published as free software. Moreover, I won't be able to maintain or develop it further for a long period of time, so if anyone is interested in continuing it, they are more than welcome.

Screenshots

TAVOO screenshots

Structure

As for the structure of the application, please bear in mind that it was the first Android application I ever developed. I made an effort to apply various programming principles, and I also tried various methods and technologies. Therefore, I'm sure there are a lot that can be improved. Whatever the case, here is a brief description of the main files in /app/src/main/java/gr/upatras/ceid/kaffezas/tavoo/:

AboutActivity.java
Source code of the Activity that's responsible for the display of information regarding the application (i.e. its version, a description, etc.).
AppLicenceActivity.java
Source code of the Activity that's responsible for displaying the licence under which the application's released.
AppServices.java
Source code of several methods that are used throughout the application. It specifically contains a method for displaying custom Toast messages, for reading files from the device, for logging users, and its respective AsyncTask, that sends the said information to the server.
AutoCheckOutReceiver.java
Source code of a class that manages the auto-check-out process from a location after 3 hours.
ConnectionManager.java
This file is responsible for the communication between the application and the server, and so it includes most of the related methods. More precisely, it includes a method for checking the connection to the internet, a method for sending and receiving data from a location, and a bunch of methods for creating proper URLs that are needed in some functions (such as rating). They are based on HttpURLConnection.
DirectionsJSONParser.java
This is the source code of a parser that reads the data in JSON format that Google's Directions API sends, using a method that decodes the navigational instructions.
GooglePlayLicenceActivity.java
Source code of the Activity that's responsible for displaying the licence under which Google Maps are used in the application.
LoginActivity.java
Source code of the Activity that's responsible for the login screen of the application, and that manages the related data by saving them in SharedPreferences.
MainActivity.java
Source code of the main Activity of the application, namely the screen that appears right after the start of the application and the splash screen. It includes the main menu of the application, with three major functions (profile, play locations and vets), as well as a drop-down menu for login, licenses, etc.
PlayLocation.java
This is the source file of a class that is used for the representation and easier handling of a play location and its related data.
PlayLocationActivity.java
Source code of the Activity that displays the locations available for play and walk on the map. One of the most lengthy files of the application, it includes several methods. As a brief summary, it starts by defining how the locations will be displayed on the map, and then specifies the location of the user. If that's successfully done, it proceeds by finding the nearest location, displays all of them on the map and draws the route towards the nearest. It then updates the information that are displayed on the information box at the bottom of the screen, and specifies the methods that will be "listening" to the actions of the user (i.e. addition of a new location).
PlayLocationXMLParser.java
This source file is a parser that reads the location data in XML format that are received from the server.
PrivacyPolicyActivity.java
Source code of the Activity that displays the privacy policy of the application.
ProfileActivity.java
Source code of the Activity that displays the profile of a dog. It's not developed yet, so only a warning message is displayed.
RegisterActivity.java
Source code of the Activity that is responsible for the registration of a new user. It performs some checks, displays some loading messages and calls the respective methods in order to send data to the server, via AsyncTask.
SessionManager.java
This source file is responsible for the communication between the application and the server, mainly for the functions of login and registration. It is based on HttpComponents by Apache.
SplashActivity.java
Source code of the splash Activity, that displays the logo of the application for 3 seconds while it is loading.
Vet.java
This source file contains a class that is used for representing a vet, so that the handling of the related data becomes easier.
VetActivity.java
Source code of the Activity for the vets. It basically displays two other Activities in tabs.
VetAdapter.java
This source file helps in the creation of the vet list, by defining where and how the data will be displayed in each item of the list.
VetFirstActivity.java
Source code of the Activity that displays the vets on the map. This file is also one of the most lengthy, and it operates in a similar way to the PlayLocationActivity.
VetJSONParser.java
This source file contains a parser that reads the vet data in JSON format from the server.
VetSecondActivity.java
Source code of the Activity that displays a list with the available vets in the area.

Instructions

In order for the application to work properly, several things are needed. More specifically:

  • A working setup of TAVOO API on a server. When it's set, change appropriately the localhost URL that is required in /app/src/main/java/gr/upatras/ceid/kaffezas/tavoo/ConnectionManager.java.
  • A Google Maps API key. You can get one by creating an account and following the directions on Google Developers' site. When you have one, you should place it in two files, /app/src/debug/res/values/google_maps_api.xml and /app/src/release/res/values/google_maps_api.xml.

Licence

GNU General Public License version 3.

About

Main repository for the Android application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages