{"id":13818966,"url":"https://github.com/sirivatd/robinhoops","last_synced_at":"2025-04-30T20:13:52.423Z","repository":{"id":76773817,"uuid":"151529474","full_name":"sirivatd/robinhoops","owner":"sirivatd","description":"A web-based game that appeals to both fantasy sport junkies and Wall Street traders who want to bet on professional athletes","archived":false,"fork":false,"pushed_at":"2018-11-01T09:02:41.000Z","size":456,"stargazers_count":15,"open_issues_count":4,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T20:13:41.188Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sirivatd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-10-04T06:42:39.000Z","updated_at":"2024-10-02T18:31:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9984020-1c77-4f10-8657-30e3dcf71a8c","html_url":"https://github.com/sirivatd/robinhoops","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirivatd%2Frobinhoops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirivatd%2Frobinhoops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirivatd%2Frobinhoops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirivatd%2Frobinhoops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sirivatd","download_url":"https://codeload.github.com/sirivatd/robinhoops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251774900,"owners_count":21641731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T08:00:36.511Z","updated_at":"2025-04-30T20:13:52.398Z","avatar_url":"https://github.com/sirivatd.png","language":"JavaScript","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"# Robinhoops\n\n[Live Site](http://www.robinhoops.io)\n\n\nRobinhoops is a Robinhood.com clone built with Rails and React/Redux that allows users to invest in the top NBA athletes.\n\n![Alt text](https://user-images.githubusercontent.com/10847668/47234581-20435a80-d38b-11e8-94b9-b2eaf5f1102c.png)\n\nAthletes' prices are updated every few seconds based on their stats and recent overall Twitter sentiment.\n\n\n## Twitter Sentiment\n\nCredit to sentimental gem\nRobinhoops scrapes Twitter for recent tweets and then maps each word and assigns an overall score based on each tweet.\n\nUsing Nokogiri and HTTParty\n\n```ruby\n    def self.scrape_tweeter(athlete_name)\n        names = athlete_name.split(\" \")\n        firstName = names[0]\n        lastName = names[1]\n       url = \"https://twitter.com/search?q=\" + lastName + \"%20\" + firstName + \"\u0026src=typd\"\n\n       unparsed_page = HTTParty.get(url)\n       parsed_page = Nokogiri::HTML(unparsed_page)\n\n       tweetDivs = parsed_page.css('div.tweet')\n\n       scrappedTweets = []\n       tweetDivs.each do |div|\n        tweetBody = div.css('p.TweetTextSize.js-tweet-text.tweet-text').text\n        tweetUsername = div.css(\"span.username\").text\n        tweetTimestamp = div.css(\"span._timestamp\").text\n        scrappedTweets.push({tweetBody: tweetBody, tweetUsername: tweetUsername, time_created: tweetTimestamp})\n    end\n\n       return $analyzer.score scrappedTweets\n    end\n```\n\n## How it Works\n\nAll new users receive $2000.00 and a free stock/athlete.\n\nTo be really specific, Robinhoops creates a new user and then store snapshots of portfolio value and twitter sentiment every 20 seconds. These data points are then used to graph stock and user portfolio value volatility. An athlete's price will only fluctuate if users on trading that specific stock.\n\n![Alt text](https://user-images.githubusercontent.com/10847668/47234588-25080e80-d38b-11e8-9bce-29c24704d9e7.png)\n\n\n## Usage\n\nFirst, install bundles\n\n```\n$ bundle install\n```\n\nInstall node dependencies\n```\n$ npm install\n```\nStart local rails server\n```\n$ rails server\n```\n\n## Credits\nThe following packages/libraries were used in the development of Robinhoops.io\n\n* [Chart.js](https://www.chartjs.org/)\n* [Sentimental gem](https://github.com/7compass/sentimental)\n* [News API](https://newsapi.org/)\n* [NBA Players Stats API](https://github.com/hlyford/nba-player-stats-api)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsirivatd%2Frobinhoops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsirivatd%2Frobinhoops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsirivatd%2Frobinhoops/lists"}