fydp-2015-010's Introduction
fydp-2015-010's People
fydp-2015-010's Issues
Delete User needs Confirmation
If the user clicks delete, something like "Are you sure you want to delete?" message should appear.
Implement group chat
Implement contact list filtering
Implement password-based cryptography for local and gdrive storage
All json stored locally or remotely on gdrive need to be encrypted with the user's password.
SJCL should handle this pretty well:
http://bitwiseshiftleft.github.io/sjcl/
Implement google drive storage API
Required for synchronized contact list, portable hashname string, etc.
Implement and test basic message delivery and reception using telehash
Ignore real-time aspect for now. Start from send/receiving entire messages on cue.
Promise-based tests not working as expected
Assertions in promise then callbacks are not being called.
Consider using Jasmine-as-Promised library.
Implement offline message queuing
We need a better name.
Something short, unique, and ideally, has a TLD(Top Level Domain) available.
I thought of text.io but the TLD is taken. =/
Implement local storage
The app should be able to store persistent user data using the browser's local storage API.
User can send empty messages
Doesn't end up getting pushed into message list because m: '' evaluates to false.
Results in inconsistent chat logs.
User should not be able to send empty messages in the first place.
Implement and test user id (hashname) generation using telehash
Port application to the ionic framework
Send profile updates when name is updated
Implement and benchmark real-time messaging with Telehash
Might not be feasible if performance is too low.
Add error indicator for message sending timeouts
Implement real time widgets
Contacts are not saved to local storage once added
Build a friendlier home screen
snap.js dragging behavior is erratic on android
Dragging out the left panel causes the entire screen to zoom out. Right panel exhibits no such issue. Possibly content dependent.
Possibly troubleshoot by removing elements one at a time?
Open contact tab when message is received
If a user sends you a message and his contact tab isn't open, it should automatically open so you know about new incoming messages.
Send should be disabled if a user is offline
Implement global app configuration
The app should be able to save and edit global configuration, and react to them accordingly. Example would be swapping out the storage service implementation between local storage and google drive API based on storage configuration.
Need to look up angular best practices for saving app configuration.
Implement promise wrapper around telehash callback functions
Reference available here:
http://strongloop.com/strongblog/promises-in-node-js-with-q-an-alternative-to-callbacks/
Keep track of message read/unread status
Implement logout button
Deleting user should close all channels
Display contact info on info button click
Implement concurrent sessions for a single user
Sort tabs by most recently opened
Notify user of invite timeout and allow them to retry
Invite sending is not as reliable as sending messages
Implement invite sending and receiving
Need to save contact list in storage.
Remove hard-coded hashnames.
Implement availability setting for current user
Implement contact list and contact reachability indicators
Dependent on local/gdrive storage services
Research or develop an efficient "update message" format and change processing algorithm
Telehash allows us to send simple JSON messages, but for real time communication, we should send update messages in increments rather than resending the entire message every time an update occurs.
I'm thinking the update message format could be something like this:
{
o: (operation: 'i' (insert), 'd' (delete)),
i: (index),
m: (message)
}
But to implement this we also need an algorithm that runs every few seconds to convert the user's changes to the message into delta-update messages of this format. Gonna need some help with this.
Although this feels like a solved problem. If we can find a library to handle this for us that'd be even better.
Message is still editable during send attempt
Message box should be set to readonly when sending.
Implement chat bubble theme for chat messages
Implement password changing
Implement sorting options for contact list
Implement password confirmation input
Implement message history filtering
Implement data import/export
Implement chat history saving
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.