Giter Club home page Giter Club logo

dailyidea.com---archive's People

Contributors

aldarund avatar danleyb2 avatar ezl avatar f-prime avatar gildedhonour avatar merwane avatar patelravi avatar vedmant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dailyidea.com---archive's Issues

Public/Private Ideas API changes (view description)

Following api changes required to support public private idea feature:

1. User Idea (api detail) api
It should return if the idea is private or public

2. Public Ideas api
Should not return any private ideas

3. Toggle Idea Privacy
While editing the idea, user can change the idea's privacy status to public or private.

Unauthenticated Comment on an idea

Add the functionality so a user can comment on an idea.

In the same way blogs and other platforms do this, let the user TRY to start leaving a comment before forcing them to authenticate, then when they press the button that causes the comment to be left, make them authenticate.

however, lets be a little more clever with our UX in order to improve the experience and the completion rate.

Case 1: if a user is already authenticated, of course this is easy -- just post the comment.

Case 2: if the user is NOT authenticated, the flow should be something like:

  1. type in the comment
  2. press the submit button
  3. modal or some sort of message pops up saying: "Oops, verify your email or sign in to post your comment!" -- include an email form field and a button which triggers the email send.
    3.5 go to "sent an email, check your inbox!" page.
  4. we send a message to the email address they submitted. The email content says "post your comment" and contains the idea title and the comment text that was used by the user in the steps above.
  5. When the "post your comment" button is clicked from the email, it takes the user back to the idea detail page they were already on, and the comment should be posted. This is possible because we know what detail page the user was on, and what the comment content was.
  6. We should display a different modal success message BASED ON whether the user previously existed or not. (A) if the user did exist before, we just say "Welcome back, Username! Thanks for your comment!" OK button to close modal. (B) if the user did NOT exist before, we create an account for that user, then show a modal that says "Thanks for your comment!"

thanks

set font

try to mimic the fonts in the actual designs. if not possible, use open sans as default font

Add functionality for what happens if I follow a user.

  • Make it possible to follow a user (done)

If I follow another user, I'll:

  • get the ideas of that user in my daily email digests
  • there will be a page in the web app where I'll see "Ideas from users I follow"
  • there will be a page with a list of the users I follow (for now just create a page with a simple list)
  • make sure to implement a pending state for this button. (currently not done)
  • hover over button explains to a user what happens if you DO follow a user

On a user's profile page, this should be toggled by the user's follow/unfollow button.

Support image uploads via trix in ideas

While editing idea content, the editor has option to support images, if user attaches image in editor, we will need to store them at server and put it's link back inside editor for further reference.

Hence for this purpose, we will need apis to

  1. Save image uploaded by user and return its public url(with image id)
  2. Delete this image from server in case if user deletes image from editor.

Like an idea

Like an idea

By clicking the lightbulb, it shows that you've liked an idea.

This data is used in a few different ways:

  1. there's a page for every user of "ideas you've liked"
  2. on the idea detail page, if you have liked an idea, then the light bulb is "on", if you have not liked it, it is in grey
  3. on the idea detail page, the number of likes an idea has is displayed
  4. on an idea list page, the number of likes an idea has is displayed

Handle comment attempts for unauthenticated sessions

If an UNAUTHENTICATED user tries to leave a comment, we should:

First, before we collect the email:

  1. allow the user to type the content, as if they are authenticated (currently we don't even allow them to type in the comment input box).
  2. When they press send or enter, instead of immediately posting the comment, add the comment, only visible to them, in a different color, with an indication that the comment is pending. If another person loads this page, this comment should not be visible. Regarding whether we should actually persist this comment or not -- I'll leave it to the developers to decide the appropriate course of action.
  3. At the same time, pop up a modal to ask for the user's email to verify their identity. "Before we post this for everyone to see, can you please confirm your email address?" ______

If the email address belongs to an existing user:

If the email entered in #3 above matches that of an existing user, then we:

  1. show a message saying: "Welcome back, ! It looks like you weren't signed in. We just sent you a verification email. Please check your inbox and click on the link and we'll post your comment ASAP."
  2. send them a verification link. This should use a different email template used specifically for this purpose. "You left this comment _______ on this idea _______. Press this to finish posting your comment."
  3. when they click the verification link, it takes them back to the idea page, and the comment is fully posted. If possible, show some sort of highlight / fade css transition so the comment is highlighted, then the highlight fades away slowly over 3 seconds.
  4. Show a success message that says: "Welcome back! Thanks for posting that comment!"

If the email address does NOT match an existing user:

  1. If we don't have that user, NOW ask for the person's name: "OK, thanks! And what can we call you?" (placeholder text: First name).
  2. show a message saying: "Thanks! We just sent you an email to confirm that you're a real person :) Please check your inbox then click on the link and we'll post your comment ASAP."
  3. Send them a verification link. This should be a variant of the one described above for the case where the email address belongs to an existing user.
  4. when they click the verification link, it takes them back to the idea page, and the comment is fully posted. If possible, show some sort of highlight / fade css transition so the comment is highlighted, then the highlight fades away slowly over 3 seconds.
  5. Show a modal that says: "Welcome , thanks for posting that comment! Feel free to browse for other ideas (link to 'all ideas') or add your own ideas (link to 'create idea')"

Edit:
Adobe XD file link: https://drive.google.com/open?id=1JguqEGCGcAG4i51amot_LIBk7NslRWA-

Create idea

page for creating a new idea from within the app

just takes 2 fields:

  1. title (input)
  2. description (textarea)

Make it possible to edit an idea

Make it possible for the owner of an idea to edit an idea.

On the idea detail page, if the request.user is authenticated and is the owner of the the idea, add an extra button for editing the idea. If this button is clicked, then turn the entire idea area into a textarea with the content of the idea and change the "edit" button into a save button.

for the UX, just emulate the way that github allows editing of issues.

to test it, just create a fake issue, then try editing either the title or the content.

for the purpose of this ticket:

  • only add the edit functionality to the idea detail page (no need to put edit functionality on the idea list page)
  • just raw text fields (don't bother with markdown or anything like that)

In the future, I'd like to have a change log / history, but not for the first iteration

Tags

Implement some tagging system.

Important: Tags are USER based. So for example, for an idea detail page, we don't display all tags from all users to the idea. All tags on an idea are user specific.

If I add a tag to an idea, in the UX, I just see the tags that I added to that idea. That means that most pages will show no tags and just "add a tag".

For now, nothing further needed re: this implementation, but the REASON for this is because in the future:

  1. search functionality -- this will search on ALL tags from all users.
  2. i don't want tags to become overwhelming if there are too many tags from too many users
  3. autocomplete -- if i try to tag something, surface the most common tags from other users on this idea

Tags should be forced to lower case only in the UI and in the database (whenever we save/retrieve)

a way to remove tags also: https://take.ms/Q1ikb

Share idea

On every idea, have a share button.

Emulate the share functionality of reddit:

On desktop, it should have:

  1. Copy link https://monosnap.com/file/ntfybeJvyvj2tEAHOePZJtdheomxLm
  2. Also add a "send via email" option -- small form takes your name, friend's name, and an email address and sends an email to a friend. (for now just send plaintext, "Hi John, Eric thought you would be interested in this idea! . we can design this email later.)

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.