Giter Club home page Giter Club logo

guru's People

Contributors

josephjunker avatar ranweiler avatar uberscientist avatar

guru's Issues

Incorrect behavior on "Submit a question"

Sequence of actions:
Create a chat that does not have operators =>
you see "Submit a question" form =>
enter correct data =>
press "Send" button

Result:
error notification with content: "Error: [object Object]"

Cannot use recurly in development mode

Sequence of actions:

  • Create new account in with environment not equal to "production"

Result:
Account created - you can login with created account. But application show Cannot use recurly in development mode error notification and not redirect to Thank you page

TODO:
mockup recurly for not production

Removal of specialties that have been assigned for website

Sequence of actions:

  1. create several specialties =>
  2. create website =>
  3. assign several specialties for website =>
  4. remove specialties (during test I remove all specialties)

Result:

  • on the "Websites" page there is still a row for website. This row contains "Edit | Delete | Embed Link" buttons, but the URL of site is missing
  • if to press "Embed Link" button then it provide URL like: /newChat?websiteUrl=undefined. But if to replace undefined to correct URL - chat work
  • URL for an image that serves as a button to open the page with the new chat is undefined as well.
  • JS console show:
Could not translate specialties: null with context:

{
  data: [
    allowedSpecialties: [],
    embedLink: "<a href="JavaScript:void(0);" onclick="window.open('http://localhost:4000/chat.html#/newChat?websiteUrl=undefined' , 'Live Support', 'width=620,height=660, menubar=no,location=no,resizable=yes,scrollbars=yes,status=yes'); return false;" rel="nofollow"> <img border='0' title='Click for Live Support' alt='Click for Live Support' src='http://localhost:4000/chatLinkImage/undefined'></a>"
  ]
}
  • if press "Delete" button it throw JS error TypeError: website is undefined
  • if go to "Users" and press "Add New User" then application show modal "User Information". There is checkbox for "missed" website but without website URL (see attached image)
    img02
  • if you try to create new website with same URL then application show "Error saving element: A Website with url: '{new website URL}' already exists." error notification
  • if
    1. create new website with other URL (for example, google.com)
    2. go to other page (I opened "Specialties" page)
    3. back to "Websites" page

then on "Websites" page

  • there is no newest created website
  • there is row with "missed" website
  • if to try create website with the same URL as for the latter site (i.e. google.com) then application show "Error saving element: A Website with url: 'google.com' already exists." error notification
  • if create new website with other URL (for example, google.com.ua) and
    • try to go to "Users" page then there is TypeError: site is null error in JS console
    • try to go to "Websites" page then there is TypeError: website is null error in JS console

Modal backdrop which does not disappear

Sequence of actions:

  • logout => you should to see "Login" modal
  • in address bar of browser manually change hash from #/login to #/createAccount and press Enter

Result:

  • "Login" modal will disappear
  • you still see backdrop
  • you see "Create new account" form under backdrop

In order to use "Create new account" you need click backdrop

Tracking the fact that chat is active

Sequence of actions:

  • [as visitor]: create new chat
  • [as operator]: not accept new chat
  • [as visitor]: "Leave" chat or close window/tab of browser with chat

Result:
As operator

  • you'll still see the proposal to accept the chat
  • you'll still able to accept/watch chat without visitor

Expected:
After the visitor left the chat, which was not accepted by the operator:

  • this chat should not be displayed in the operator control panel
  • operator should not be able to accept this chat

Overall State of Things

Hey, I won't have time to respond to individual bugs for the most part, but I think I can help out with an overall sense of where the project was heading before.

I assume you're working off of the master branch. When the project was stalled, there was a big refactor in progress for the core messaging approach. This code is contained in the 'particle' branch, and is based on the Particle npm package which I published:

https://github.com/torchlightsoftware/particle

I don't think that the message based approach you find in 'master' will be sustainable, and we were having memory leaks and performance issues with it. Particle too, has some problems and may not be the right approach. Lack of a good solution here was the primary cause of complexity and wasted time on the server.

It's similar to the problem that trello solved:

http://blog.fogcreek.com/the-trello-tech-stack/

There may be technologies that have come out in the last few months that will assist you in this.

The UI as well is built on messaging patterns which aren't sustainable. Facebook's React has recently come out, and solves a lot of the encapsulation and performance problems we were dealing with. It's very modular, so the system could be refactored over time as performance warrants.

That's about all I have for now.

Good luck!
Brandon

Operator should able to kick visitor only once

Sequence of actions:

  • accept chat
  • press "Kick" button

Result:

  • area with messages show "The visitor has been kicked from the room" message
  • "Kick" button enabled
  • if to press "Kick" button again - area with messages show "The visitor has been kicked from the room" message again

Expected:
after operator kick visitor button should be disabled

Content of "User Information" modal if there are no appropriate users

When operator press "Invite" or "Transfer" buttons application show "User Information" modal. "User Information" modal contains "Name" and "Actions" columns even if there are no appropriate users.

Suggestion:
if there are no appropriate users then "User Information" modal should show something message like "No appropriate users" instead empty "Name" and "Actions" columns

Incorrect processing of user session

Sequence of actions:

  • in 1st tab of browser: copy URL for new chat from "embed link"
  • open copied URL in new tab or in new window of the same browser
  • [in 2nd tab of browser]: enter into chat as visitor
  • in 1st tab of browser: try to visit some section of operator panel, for example, "My Chats" or "Account"

Result:

  • after first attempt you will see "Sorry, you are not allowed to access this chat. Please try again." message
  • after second attempt you will see "Login" modal

Expected:
The operator must still be logged in

Ability to refuse or hide chat in dashboard

When operator visit "Dashboard" page he see all chats which have been proposed for him. Each proposed chat has 2 buttons: "Accept" and "Watch". If the operator will be prompted to 1000 chats, he will see the 1000 chats. And he will not be able to refuse or conceal those chats which he does not want to accept.

Suggestion:
each "not active" chat in dashboard should have "Refuse" or "Hide" button

Operator need to accept chats again after logout/login

Sequence of actions:

  • in 1st browser: copy URL for new chat from "embed link"
  • [in 2nd browser]: open copied URL in other browser
  • [in 2nd browser]: enter into chat as visitor
  • in 1st browser: accept chat => chat will have state "active"

Result:
you (as operator in 1st browser) will see that chat, which you accepted already, now have state "waiting" and you need to accept it again

Expected:
chat, which was accepted by the operator, should have the state "active" and the operator does not need to accept it again

Notes:
Content of the "expected" section does not applicable to cases where:

  • chat has been transferred to another operator
  • visitor left the chat

Questions:

  • when the operator logout or loses connection to the server:
  • whether the visitor to see what his companion is unavailable?
  • whether the server should start looking for new operators instead of the previous one?

Login modal

Sequence of actions:
logout =>
you see "Login" modal =>
click on backdrop

Result:
"Login" modal will be hidden and then shown again

Operator should not able to send messages in chat which not contains visitor

Sequence of actions:

  • accept chat
  • kick user

Result:

  • text area for new message and "Send" button enabled
  • operator can enter new message and press "Send" button. In result hear the sound that is heard when sending a message but new message not appears in area which show all messages

Expected:
if there is no visitor then

  • operator should not able to send messages
  • text area for new message and "Send" button should be disabled

Content of error notification on /submitQuestion

Sequence of actions:
Create a chat that does not have operators =>
you see "Submit a question" form =>
leave form fields blank =>
press "Send" button

Result:
error notification with content: "Error: [object Object]"

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.