Giter Club home page Giter Club logo

pug's People

Contributors

eltoraz avatar kevinframe avatar nickmartin avatar oreccb avatar

Watchers

 avatar  avatar  avatar  avatar

pug's Issues

Minimize Bandwidth

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.

User Profile Privacy

Allow the user to set the visibility of their profile information to protect their privacy. Set the default visibility to private.

Username/Password

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.

Search Parameters

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.

Option to Join an Already-Joined Game

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.

Teams

Implement Teams of users to facilitate joining games en masse.

List Games

List the games retrieved by a search.

User Icons

Allow users to set a custom avatar/user icon.

MapView Limitations

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.

Special Rules

Allow users to specify additional rules and constraints for games.

App-Server Handshake

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.

Propagate Profile Changes to Server

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.

Get Rid of Old Games in DB

We need to write a procedure or trigger on the server side to get rid of all the games that have passed

Code Cleanup

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.

GPS

Add GPS functionality, both for displaying current location on map and searching for local games.

Old Searches

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.

Game Privacy

The "private" field for games does nothing yet.

User as Singleton

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.

Edit Game

A user should be able to edit the details of a game he/she created/owns.

Input Validation

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.

Edit Game Updates Local Copy

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.

SSL

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.

Game Details

There is no intermediate step between viewing a short summary of the game and joining the game. Use case UC3 models the desired behavior

Join Games over Maximum Player Count

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.

More Descriptive Errors

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.

Leave Game

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.

Local User not Updated

The local copy of the user is not updated after changing profile details; the entry in the database is properly updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.