fuse-chat / fuse

Geolocation + group based chat app for ee461l (UT Austin, fall 2015)
MIT License
0 stars 0 forks source link

General discussion #5

Open nishanths opened 9 years ago

nishanths commented 9 years ago

General notes. Please edit or comment on parts you like, dislike, or want to change.

From the browser

The following are routes that users can navigate to directly from the URL bar. There will also be links on the page for most of these, for instance: a Sign Out link.

Login and front page

We can go with whatever sign-in route conventions/names are easiest to set up with passport If an unauthenticated users visits the root url /, present the sign-in/registration page at /sigin. If an authenticated user visits the root url /, present the full chat application

Group urls

For example, group/gregory-gym. The user will be able to see the messages in the Gregory Gym group if

  1. a group with the name exists
  2. the user's location is within the distance
  3. the group is not private, user has permissions, etc.

Creating and removing groups can be done via a modal dialog as well?

User preferences

I believe we were planning on implementing user preferences using a modal dialog. Otherwise, a /preferences route seems decent.

nishanths commented 9 years ago

API

I think we decided that we will not be using separate app and api servers. In that case, can we put JSON sending URLs behind a /api route. For example, the endpoint that sends information about all groups would be at /api/groups/all or similar.

Group

Request body

The request body will contain the information during a POST request. Most of the parameters will be the same across routes.

Limit the number of objects in the collection that the server returns.

Restrict to groups around that location

Return only groups that have at least the specified number of messages

Return only groups that have less than the specified number of messages

Return only groups that have at least the specified number of users

Return only groups that have at least the specified number of users

Routes

Sends information about all the groups. Ask for customizable information using request body parameters.

We can add more descriptive, readable routes. That should help us stuffing the request body with too much information.

nishanths commented 9 years ago

Handling Changes

The browser Geolocation API allows to listen for changes in the user location in the browser. On changes, we ask the server for updated group information which we can then render on the user's browser. This will largely be a front end task that deals with keeping the view updated with the current data.

We should also remember to prevent the user from posting / navigate the user away from the current group if the user moves to a location where she is not allowed to view the group anymore.

nishanths commented 9 years ago

@RobZuazua @BSeroussi @rahuljaisimha

BSeroussi commented 9 years ago

To add on to what we are talking about, here is the bootswatch styling that may make our lives quite a bit easier: https://bootswatch.com/ Take a look at the styles and let me know which one you like. I'm partial to Cosmo and Yeti for a business like feel or Superhero for a more.... blue-like feel. Let me know what you guys like. To implement it, all we have to do is download the css file. It also comes with a lot of premade things such as buttons/nav-bars/forms/alerts and so on.

nishanths commented 9 years ago

@BSeroussi: I like Yeti