eltoraz / pug Goto Github PK
View Code? Open in Web Editor NEWFall 2011 semester project for RPI's CSCI-4440, Software Design and Documentation
Fall 2011 semester project for RPI's CSCI-4440, Software Design and Documentation
Reduce bandwidth by minimizing the amount of data sent. We can get part of the way there by sending only unique IDs in JSON where possible. This will be especially relevant in the future with Teams and Leagues consisting of multiple people and games.
For example, when creating a game it isn't necessary to send the entire person object in JSON when the creator can be uniquely identified by the server generated UID.
Allow the user to set the visibility of their profile information to protect their privacy. Set the default visibility to private.
Allow the user to specify a custom screen name rather than requiring their full name. Require a password to login rather than relying on the device ID.
In addition to location, right now the PugNetworkInterface
only supports searching by radius or sport, but not both. The combination should be added.
The SearchGameActivity
does not provide a mechanism to search by sport yet either.
The option to join a Game is offered on all games in ListGameActivity, even for Games the user has already joined. With the new player listing capabilities, it should be relatively easy to check whether the user is already on the list for that Game and offer them the ability to leave the Game instead.
Retrieve data on a specific game from the server to account for potential last-minute changes to the game's details.
Implement Teams of users to facilitate joining games en masse.
List the games retrieved by a search.
Add a tabbed interface to the user profile to display Games the user has joined.
Allow users to set a custom avatar/user icon.
As noted in the MapActivity documentation, only one MapActivity can be present in a process. This prevents our plan to show a map to aid the user in selecting a location when creating/searching for games.
The current plan of action is scrapping that functionality, as it's not a high priority, rather than re-working the application with a reusable map.
Allow users to specify additional rules and constraints for games.
The current server-app interactions contain no way to automatically verify that changes have been propagated to the server. We should consider implementing some kind of notification upon success or failure to let the user know the status of the requested change.
The Geocoder.getFromLocationName(String, int) method will always throw an IOException in the Android Emulator on versions >= 2.2. This is a known issue with the Android Emulator.
A possible resolution may be to use virtualization to simulate an Android environment, since the Android SDK's virtual devices emulate the actual ARM processor - hardly a necessity for this app.
Changes made to a user's profile on the app are lost once the app is closed. PugNetworkInterface
should be extended to send the changes made to the profile to the server.
We need to write a procedure or trigger on the server side to get rid of all the games that have passed
We need to clean up and comment the code to conform to the Coding Standards we established at the beginning of the project.
Since we weren't originally planning to use PHP, we don't have any metrics defined. We should spell those out on the wiki as well.
Add GPS functionality, both for displaying current location on map and searching for local games.
Users should automatically join a game they create.
Games from old searches are still displayed on the map even after a new search is performed. Suggestion: clear existing overlay items before drawing the new list returned from the search.
The "private" field for games does nothing yet.
Change the way the current user is handled to use the Singleton design pattern. This will avoid potential confusion from passing a generic Person object representing the current user between activities.
A user should be able to edit the details of a game he/she created/owns.
User input currently is subjected to no validation. It would be desirable to catch inappropriate input beyond what the XML prevents for the text boxes.
This could pose a problem for unchecked input in the description field, leading to potential SQL injection attacks. See XKCD #327.
Commit 6b4f263264 raises a NullPointerException when editing a game. For this reason, the beta code release excludes this particular commit.
This is caused by the ListView.getChildAt(pos) returning a null View, possibly when the game selected is not visible. As an alternative, try re-setting the adapter after modifying the ArrayList the ListView adapter is using.
The app-server connection is insecure and can be easily spoofed by third parties. While the database isn't directly accessible and doesn't contain vital data, it would be a good practice to connect over HTTPS instead.
There is no intermediate step between viewing a short summary of the game and joining the game. Use case UC3 models the desired behavior
The current mechanisms for joining a game do not perform a check against the maximum/current number of players signed up for a game before adding the user to the game.
Instead of failing with a stack trace, give the user a more descriptive error message, or catch the exceptions more gracefully and let the user try again.
Adapt the join game functionality from the ListGameActivity to allow the user to leave a game they've joined when viewing a list of such games under their profile.
The local copy of the user is not updated after changing profile details; the entry in the database is properly updated.
Update the joined games list after leaving a game.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.