faro's People
faro's Issues
Remove unused classe ( eventTimes, Dateoffset )
Make Event-User Junction operations idempotent
Location addr turning to a name
Display regular sized image on clicking a thumbnail from the photos gallery in the app
Create commons project for object sharing between frontend and backend
FaroJwtTokenManager validation is not correctly validating the token when invoked via functional tests
Implement validations for datastore apis
Validations involve multiple hits to the datastore. We need to identify all the validations required and implement them across the board.
Example: If user tries to create activity, we need to check if event exists and if user is part of event.
Handle delete Event completely
When we delete an event, all polls, activities, assignments, etc should also be deleted with it on the backend. Currently after creating activities for an event, when i am deleting the event, i see stale entries for activities in the database..
Add support for sending emails from Faro server
Some of the APIs like the ForgotPassword require an email to be sent to the user.
For this and other use cases like email notifications in the future, we need to use some Java Email client and SMTP server to send emails. We can use Google App Engine's Mail service -
update Poll not implemented
Updating Poll after adding new pollOptions.
resend the updated object when calling update API calls
If not then i would have to do one of the 2 things:
- Update the object on the frontend in the code only
- Make another API call to get the newly updated object.
If we could return the object in the update API itself then it would be the best way to keep frontend and backend in sync
Handle update correctly
Eg: Poll has option 1,2,3 saved on the server.
User1 adds option4 so sends update as 1,2,3,4 to server
Simultaneously user2 adds option5 so sends 1,2,3,5
Server should finally have 1,2,3,4,5
Same thing should be handled for all other updates.
Secure Faro server APIs through https
Configure our application on GAE to use https -
https://cloud.google.com/appengine/kb/general#https
https://cloud.google.com/appengine/docs/java/config/webxml#Secure_URLs
Address authentication group code review comments
All code review comments mentioned as TODOs during the code review are to be addressed
Return MinUser on Invitefriend API
As a response to inviteFriend can we return the MinUser object so that i can store it in the list in frontEnd. Without this the local DB on the frontend will not have the friend until i call getFriends API again to get all my friends
Update APIs - Send updated object back to client
@gorillapie2000 @nakulshah87 @gauravr007 @Gopats : I am inclined over making changes to all updates APIs to send the updated object back.. Reason being: Today, we assume that since the client sent the update object, he should be able to use the updated object on client side if we were to send back HTTP-200(OK) and the server need not have to send the updated object.. However, if 2 clients make near simultaneous update, then each of them would be missing each others update. In some APIs, like add/update TODOs, client only sends the add/update piece and its possible that the same TODO was updated by another client. Updated object would help..
Pros: Avoid extra GET call for updated object.
Cons: Sending more data over the wire.
Unknown: How does notification play a role in the entire mix? For example, a silent client who does not update/interact in the event, also needs to know about all the updates. Would notification poke that client to pull updates?
Thoughts? Suggestions?
Update event API not implemented
Decouple data model from UI code.
Event.java
switch (status){
case 0:
setImg_resource(R.drawable.green);
break;
case 1:
setImg_resource(R.drawable.yellow);
break;
case 2:
setImg_resource(R.drawable.red);
break;
}
Improve the structure of the bidirectional Friend Relation m:n unto itself
Current implementation of the Friend Relation will require two writes, the atomicity of which cannot be guaranteed. Improve this workflow to not contain two writes
Add unit testing for Android
Tricky workflow for displaying/updating my Assignment Items
As per the reequirement, we need a page which displays all my items for the event which includes all my items across all assignments.
Eg: if user marks 2 assignments as done and if these belong to activity 1 and 2, then how to make the update API call to the server?
MRU events
Create Datastore and API ability to get MRU events for a given user.
Number of MRU events can be decided.
Assignment APIs missing
Are Apis for assignments not implemented on backend?
in the api folder i do not see any file for assignments. Also in the apilogic folder in AssignmentManagement file there are no addassignment methods.
Can you please take a look into that when you can?
Rename android package name to appropriate strings
Periodic thread
Do we want to have periodic thread running in background to update the eventlist?
Update Poll vote change
After voting the first time, if the user then changes his vote, I see that we do not remove the user from the old option's voters List.
We need to somehow update this on the server.
Add email as part of Invitees class
We need to know the email IDs also as part of the Invitees class.
500 Error when updating event
i see the following error when make the updateEvent Api call.
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class com.zik.faro.data.Event, and Java type class com.zik.faro.data.Event, and MIME media type application/octet-stream was not found.
Assigning names to assignments
Bug: Signup - Prevents duplicate signup, but no error message. User is kept on signup screen
On Signup, If a user is trying to signup but is an existing app user, the functionality of not allowing the user to duplicate the user on the server works well. however, no error message is shown to notify the user of an existing account.
Please add a message to indicate to the user to either log in or use forgot password
Modify all API handlers to use the username passed by the auth filter through SecurityContext
create profile should return the new created faroUser object instead of "OK"
Update the http client code as well when this is changed on the server
Delete item at backend
When an item is deleted, it is not removed from the backend. Needs to be implemented in updateItemsInExistingList method
Accomodate Invite-Accept workflow in the DAL.
Currently invite action automatically makes the invitee a friend of invited.
BUG: Adding friend does not add friend instantly. Needs a change of screen to pull data from server
When user adds a friend, the addition does not appear on the friends list instantly. User has to navigate away from the friends page and come back to it to pull the updated data from the server.
Multichoice Poll
When creating poll need to store if the poll is a multichoice poll or not
Jersey REST unit tests do not take into account web.xml
This will ignore the tag which is present in the web.xml. This therefore then leads to an issue where an incomplete path has to be used while make the HTTP request in the unit test.
ID for item created at client
As part of the constructor for item, we create the ID for it at client side itself unlike any other object. I think this is incorrect and we should be consistent with every other object and create it at the server side only.
Event API - Clarifications
@nakulshah87 : eventCreatorId will always be "faroUserId" of the Faro user who will create the event. And this field can never be changeable. Is that correct understanding?
Activity Calendar issue
When creating the activity on the server, the start Calendar gets set as the end Calendar.
Default serialization of server is xml.. Make that Json
Default serialization of server is xml.. Make that Json
API for saving the public URLs and metadata of the photos uploaded to Facebook
After images are uploaded to Facebook, the client (android/iOS) will issue the request to persist the public URL of the images along with some associated useful metadata.
API can look like this :
Resource : Event
Path: /v1/event/event_id/images
Method : POST
Params :
images - List of Image object below
Image
String imageSourceUrl
enum imageProvider (Facebook, Dropbox, etc. For now the enum should only have Facebook)
String ownerId (Faro user id who uploaded the image)
Date uploadDate
long imageWidth
long imageHeight
API to obtain the images :
Path: /v1/event/event_id/images
Method : GET
Implement Reset password and Forgot password API handlers
Poll update api issue
After voting for a poll option, i call update Poll API. This causes each poll option to be duplicated and returned from the server.
Also on changing the vote to another option is not getting updated.
Use string values for enums.
Allow Faro acess to you location
The popup to allow location to FARO is being requested after an event is created. Should be when the app is opened, or when a person is adding a location to an event.
Facebook login integration for images
When trying to view/upload images , if a valid access token for the user's Facebook is not available within the application, then need to prompt the user to login to their account and provide the app the required privileges.
poll Update
when updating poll with new poll options, those new poll Options do not get new ids assigned
Event Ownership Transfer
Ownership transfer will be based on new event owner selected by current event owner. New owner will not have choice to accept ownership.
implement API to pick poll winner
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.