-
Notifications
You must be signed in to change notification settings - Fork 1
niket-goel/workspace_FLU
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published