Git Product home page Git Product logo

typesense's Introduction

typesense's People

Contributors

agernz avatar alichtman avatar shobrook avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

typesense's Issues

Predict impact of drafted message

Back End

Add to the messages list as if it were the last real message, and then only have 19 "real" messages to display + the predictive one?

Front End

Button inside the extension popup somewhere. Disappears once clicked.
When clicked, slide all messages up by one message slot.
Add in new message blob, opacity 50%.
Reset when they close the popup

Sentiment Analysis Methods

Write a GET request function (like the post request already written) in background.js. It should take in a URL (the endpoint), the payload (messages/credentials), and a callback (a function that does something w/ the response).

After that, write the analyzeSentiment() function that takes in a list of message objects assigns a sign (+/-1) to each emotion category and then sums all the valences. It should return an ordered list of sentiment objects, where each sentiment score is scaled between -100 and 100. Each sentiment object is structured as such: {"sentiment": int(), "message": str(), "received": bool(), "id": int()}

Predict impact of drafted message front end

Button inside the extension popup somewhere. Disappears once clicked.

When clicked, slide all messages up by one message slot.

Add in new message blob, opacity 50%.

Reset when they close the popup

Password reset by email

"Help, I forgot my password."

Most websites use an email loop to authenticate users who have forgotten their password.

To do this, generate a random single-use token that is strongly tied to the account. Include it in a password reset link sent to the user's email address. When the user clicks a password reset link containing a valid token, prompt them for a new password. Be sure that the token is strongly tied to the user account so that an attacker can't use a token sent to his own email address to reset a different user's password.

The token should expire in 24 hours after it's created OR when it's used.

Expire any existing password tokens when the user logs in (if they remembered their password) or requests another reset token.

Attackers will be able to modify the tokens, so don't store the user account information or timeout information in them. They should be an unpredictable random binary blob used only to identify a record in a database table.

Remember to pick a new random salt when the user resets their password. Don't re-use the one that was used to hash their old password.

Add email verification on account creation

When an account is registered, the account is not valid until a confirmation link sent to the user's email account is clicked. Pop-up on the front end letting the user know to check their email is also important.

Server Error: Unhashable type: 'dict'

File "/Users/alichtman/Desktop/Projects/TypeSense/server/server.py", line 194, in change_conversation
    {"$push": {"connections": ObjectId(str(connection))}}
TypeError: unhashable type: 'dict'

Curl Request:

curl -X POST -H "Content-Type: application/json" -d '{"email": "[email protected]", "fb_id": "shobrookj", "messages": [{"author": true, "message": "Test 1"}, {"author": true, "message": "Test 2"}, {"author": true, "message": "Test 3"}, {"author": true, "message": "Test 4"}, {"author": true, "message": "Test 5"}, {"author": true, "message": "Test 6"}, {"author": true, "message": "Test 7"}, {"author": true, "message": "Test 8"}, {"author": true, "message": "Test 9"}, {"author": true, "message": "Test 10"}, {"author": true, "message": "Test 11"}, {"author": true, "message": "Test 12"}, {"author": true, "message": "Test 13"}, {"author": true, "message": "Test 14"}, {"author": true, "message": "Test 15"}, {"author": true, "message": "Test 16"}, {"author": true, "message": "Test 17"}, {"author": true, "message": "Test 18"}, {"author": true, "message": "Test 19"}, {"author": true, "message": "Test 20"}]}' http://localhost:5000/TypeSense/api/change_conversation

Contextual Sentiment Analysis Strategy?

Do we want to analyze the sentiment of each message individually (out of context) or in sets of 3-4 messages (in context)?

ABABA? ABA? Sets of 3/4/5 messages, regardless of who sent them? What if all of the last messages are all sent by one person?

Azure forces sentiment analysis of only one string at a time, so we can't do contextualized sentiment scores unless we join them into one string.

Opinions on what we should do?

Facebook Login

No point in designing a secure registration system only to switch to FB auth later.

^^ This looks promising, maybe. @shobrook, read step 3 and lmk if this is applicable. I understand Step 1, but I don't know where the rest of the code goes.

This is used to get Oauth2 keys. Need to add "identity" permission in manifest.json

We could do Google Auth pretty easily, but it makes a ton more sense to do FB auth. It's a pain, but...

Draft plan to commercialize TypeSense

First Category: Walking Your Dog Food to Market by Fulcrum
Create the best open source contribution with commercial viability.

Second Category: Fund Your Dreamscape by 1517
Innovate and extend an existing open source project in an entrepreneurial way.

Publish to Chrome Webstore

Once everything else is taken care of:

  1. Create developer account for TypeSense (should not be one of our personal accounts)
  2. $5 one-time set up fee
  3. Release extension in webstore

Add Google Authenticator 2FA option

I don't know why you would really care about 2FA on this extension, as we've done a good job of storing no private data on the server un-hashed (no passwords/messages), but it would make me happy so...

Not Enough Messages to Calculate Sentiment Trends Popup

Due to the structure of server.py, we need 23 messages before we can display any sentiment data. We need a front end notification letting people know the extension isn't broken (completely), and that they need more messages before we can do anything.

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.