Skip to content

niket-goel/workspace_FLU

Repository files navigation

We present to you the FLU : (WORK IN PROGRESS android API level 19.0)

Abstract:
Moving to a new place always involves the challenge of not knowing anyone, and hence being a social outcast for quite 
some time. We have all faced this problem in our lives. Although the social networks like Facebook, Twitter etc. 
have changed things a bit. It’s easier now to make new friends, and keep a track of social activities being organized 
through such networks. However, we have observed that the whole system revolves around a person’s ‘Friend List’ and 
‘Groups’. A person who knows more people on the network will be the more updated than the one who knows less. The Friend-List (or even follower) concept is a very static one. If you have recently moved to a new location, such a social network would be rendered useless for you, as now you have physically moved to a new location, but your cyber identity is still hinged to the same place and friends. Although the current location can be updated in the system, which would allow the system to suggest some social groups on such a network. But as one might not have a lot friends in common with the people already in the group, one might not be accepted (moderated group). Our concept takes the factor of having friends out of the picture. We intentionally keep the information not user centric, but location centric. The point is to be able to get information based on where a person is at a given time, and not by who he/she knows at the moment. The main motivation behind the idea is an environment where you don’t have to explicitly search for information; it comes to you.

The project contains the entire source code complete with the libraries, required to run the project.
========================================================================================
THE ANDROID APP:
========================================================================================
	can be found in the FLUnetwork project. The contents of the app are arranged as follows:
		1. com.example.flunetwork -- Contains the classes required to configure the connection to the app engine backend
		2. com.example.flunetwork.ui -- Contains all the activities of the app and any custom view/adapter code that is 					being	used in the App.
		3. com.example.flunetwork.helper -- Contains all the classes that are serving as utility classes and are not 							responsible directly for the manipulation of UI for the most part. This package mainly contains a class for static 			global objects
			and constants, and a classreponsible for managing the user location, through the android location serivces.
		4. com.github.davidmoten.geo/.geo.util -- Contains David Moten's implementation of GeoHash encoding and decoding and 			many other handy functions. 
	
	All the resources are defined in the resources folder under their respective folders. We have minimized the use of any 	kind of literal strings/colors within the app and used styles wherever possible.
	
	The package by the name of endpoint-libs contains the endpoints that are required to connect to the app engine server 	and make requests to the REST services running there. These classes also contain the logic to serialize & deserialize 	any entity that has to be sent or recieved. The format used for communication is JSON.
	
	The App requires the following permissions : 
	  C2D_MESSAGE
    RECEIVE
    GET_ACCOUNTS
    USE_CREDENTIALS
    MAPS_RECEIVE
    INTERNET
    WRITE_EXTERNAL_STORAGE
    READ_GSERVICES
    ACCESS_COARSE_LOCATION
    ACCESS_FINE_LOCATION
    ACCESS_NETWORK_STATE
    READ_EXTERNAL_STORAGE
    
  We advise anybody using the code to be very honest with the user, and explicitly inform the user of the kind of access 	the app would require. Especially the permission for accessing the user Email ID and phone number etc. accessed by the 	USE_CREDENTIALS permission.
  The App has been tested to be crash free, but there are still some quirks that need to be fixed!
  
========================================================================================
THE APP ENGINE CODE
========================================================================================
	is the code that runs at the heart of the server and performs the data processing operations that we need to 						implement. The package organization is as follows:
	
		1. com.example.flunetwork -- Contains the boiler plat code, which is auto generated by the app engine sdk. The 						services exposed in this package enable google cloud messaging capabilities, if required by the app. We did not 				need to puch such messages to the app and hence are not using them. We have not removed the code, as it might be 				of use some time down the line.
		2. com.example.entity -- Contains the entity classes that model the data for the application. Conatins two kinds of 			classes: the entity class itself and the endpoint library class, in which all the methods that maybe performed 					upon an entity are exposed.
	The endpoints exposed through the library classes are REST endpoints, and hence must be accessed the same way 					(RESTfully) by the client. The main benefit of using such endpoints is that the beckend is not client specific, and 		the same backend may be used to serve different kinds of clients (e.g. blackberry, IOS) without making any code 				modifications.
	Sadly the app engine backend will not deploy and run as it is from your google account, as it is configured to use my 	credentials. You need to set up your own application at the google app engine console and use the application id you 		generate in the WEB-inf file under the WAR folder. For more infromation, follow the following link:
	https://cloud.google.com/
	https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial
	
	
========================================================================================
google-play-services_lib
========================================================================================
	as the name suggests, this is a library that needs to be included in your android app, to enable google services 				within your app. Maps is one such service. The App uses MAPS V2.0, that are exposed through these services.
	
	********************************************************************************
	NOTE: To get the maps working in your app, you need to enable the MAPS API form your google account and also replace 		the API key for google services. This can be done quite easily. For more infromation, follow the following links:
	https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2
	http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
	********************************************************************************
	
========================================================================================
Development Prerequisties
========================================================================================
	To be able to do any development on the project, you must have the following in place:
	1. python 2.7
	2. cygwin (Windows)
	3. App engine SDK (python)
	The above are required only if you want to manually upload data to your server.
	4. Eclipse ADT bundle
	5. Google App engine plugin
	6. Google play services
	7. Test device drivers (Maps won't work on the emulator)
	

About

Integrated Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published