Giter Club home page Giter Club logo

nuzzel-clone's Introduction

andrewwhipple.com

Basic goals: better designed landing page using the tumblr text

Future: -blogs -galleries

nuzzel-clone's People

Contributors

andrewwhipple avatar dependabot[bot] avatar

Watchers

 avatar  avatar

nuzzel-clone's Issues

Make the twitter users links to the tweets themselves

This looks like it'll involve

  • modifying the twitter user model to include the username (as opposed to just ID and name)
  • modify the get_twitter_user_from_twitter method to get the username and store it
  • modify the read_tweets_of_following_by_twitter_user_id method to also pull the user's username and store it in the returned tweet object
  • modify the FE to turn the user's name into a link of the form https://twitter.com/{{username}}/status/{{tweet_id}}

Basic FE

  • Feed of links
    • Show the link url as a hyperlink
    • Show the number of users who tweeted it
    • Order by number of users desc
  • Only pull links for the current user within the last 24 hours

Performance improvements

Things to do:

  • Add attribute to twitter_user for last_tweet_id, change the twitter polling task to store that and check against that when polling twitter, and only store tweets that have valid urls in the db
  • based on that, Remove the url check from the route and the twitter_user.read_tweets_of_following_by_twitter_user_id function
  • refactor twitter_user.read_tweets_of_following_by_twitter_user_id to first loop and get all following ids, then make a single db query (add the requisite crud helper) that pulls the tweets of the last 24 hours for all users (this will need to account for getting the combined username details in the tweets array that gets returned)

Dockerize

  • Dockerize the API
  • Dockerize the FE
  • Dockerize the SQLite??

starred users

Give a way to select users who receive priority in the list

Display starred users

  • Add something to the user model to indicate which twitter_users are starred for that user
  • Change the rendering order to show starred users first
  • Add a UI element to distinguish a starred users

Star users

  • Add a UI element for starring or unstarring a user
  • Add an API call to star or unstar a user
  • Have that API call modify the model for that user to add or remove the given user being toggled

Use `since_id`

Use since_id to limit the number of new tweets pulled and stay under the monthly tweet cap

This should be in create_tweets_of_a_twitter_user_by_id:

  • Add a crud method to get the most recent tweet from that user
  • If none, then just call client.get_users_tweets like normal
  • Else, pass that Id as since_id in the call to client.get_users_tweets

Handle follows changing

Need a way to handle follows changing (unfollowing, new follows)

Probably a something like both changing the twitter following creation to check for pre-existing follows (and skip them if so) and maybe something like regenerating the following list?

Build out the basic DB crud operations

  • Get all users
  • Get single user by id
  • Get a single twitter user by id
  • Create user
  • Create twitter user
  • Create tweet
  • Create follow
  • Get all twitter users a user is following
  • Get all followers of followers of a user
  • Get all tweets from users followers (within optional date)
  • Get all tweets from followers of followers (within optional date)

Improve performance of getting tweets

To explore:

  • making a recurring task that just gets the X newest tweets from every account in the db?
  • changing to just get tweets, not get followings?
  • others?

Oauth for users

User can log in a view their feed, and only their feed

No logged out user can view a feed

Requires a login page, hashed password in the user model, and figuring out the oauth flow between the FE and BE

Hmmm timezones

Timezones are probably gonna be an issue for the time limit bit; figure out if that's true and figure out a way to deal with it

Get friends of friends links

One level deeper, get the followings of each user the user is following
This almost certainly will run into twitter rate limits if not done as some sort of partial background task, or with a backoff

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.