Git Product home page Git Product logo

fb-messenger's People

Contributors

nripendra avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

shrestharoshan

fb-messenger's Issues

Make release notes more robust

git describe (get latest tag)
git describe --abbrev=0 --tags 0.2.0^
(get tag just before 0.2.0)
git log 0.1.0..0.2.0 --oneline --abbrev

Travis settings

Explain how travis was setup for deploying (github personal access token)

Notification functionality

  • Any message received should go to notification list unless the sender is self or currently active user.
  • Notification will show a red dot till each of notification is marked as read. Hence persist notification in db.
  • Once all notification is read, the red dot is automatically removed.
  • Notification list will show only 10 last notification.
  • But should show all unread notification. e.g. lets say a user has 20 notification which hasn't been read then there should be 20 notification, there shouldn't be loss of any data.
  • Clicking on notification should set the sender of message as current friend, and show the message.

send big like

Send stickers:

369239263222822: 35
369239343222814: 84
369239383222810: 120

Git-flow

Try to follow proper git flow, as far as it can be understood :D

Automatic update

  • Download installer released to github releases.
    • Provide a fail safe mechanism such that download will continue from last place.
  • Execute installer
  • Notify user about the update
    • Provide button to restart the application.

Download resilience

Continue download in case of app crash
network failures
App closed by users etc..

Instant login/friend listing.. (use local db, and login in background)

  • save username/password to db.
  • Save friend list to db.
  • On app startup get the data from db and show friend list directly.
  • In background call login if login fails, redirect to login window, else request friend list and update the local copy in ui as well as db.
  • If possible work out solution to save cookie also so that login won't actually be required.

Automate release process

Currently release process involves quite manual steps, which is error prone:

  • Modify package.json
  • Commit and sync to server
  • Create tag and push to server

Goal for this feature is to:

Only change package.json version then call a gulp task e.g.

gulp release

If possible this automation should have following steps:

  • This should commit to master branch.
  • Create a annotated tag
  • Push commit
  • Push tags
  • Create a release branch out of master branch.

Once tags are pushed, remaining release process is automated in travis-ci

Separate conversation component

Create a separate react component named "Conversation" which will show the list of messages. Each message can be separate component if possible.

Replace presence with getOnlineUsers

Instead of relying on presence events, call getOnlineUsers on fixed interval. This should provide better accuracy of the online friends and last active time

send emoji

Look into various implementations of emoji, how they are grouped and listed.

  • Also think about future need to send stickers.
  • Emoticons will be obviously supported as it is just plain text and user can type them. But there won't be any separate emoticon listing/sending feature, only emoji.

Search functionality

Typing in the search box above the friend list should filter out the friends matching the search text.

  • Check against fullname..

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.