{"id":16986903,"url":"https://github.com/amamenko/hollywoodle","last_synced_at":"2025-04-15T09:10:56.214Z","repository":{"id":45823275,"uuid":"472057962","full_name":"amamenko/hollywoodle","owner":"amamenko","description":"Six Degrees of Kevin Bacon meets Wordle 🎬","archived":false,"fork":false,"pushed_at":"2025-03-16T05:14:11.000Z","size":1823,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T18:21:26.400Z","etag":null,"topics":["game","hollywood","mongodb","movies","oscars","tmdb-api","typescript","wordle"],"latest_commit_sha":null,"homepage":"https://hollywoodle.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amamenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-20T17:49:21.000Z","updated_at":"2025-03-16T05:14:14.000Z","dependencies_parsed_at":"2024-11-28T10:43:17.129Z","dependency_job_id":"9662037d-a1c2-499d-9353-e07cd45e0b95","html_url":"https://github.com/amamenko/hollywoodle","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/amamenko%2Fhollywoodle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amamenko%2Fhollywoodle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amamenko%2Fhollywoodle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amamenko%2Fhollywoodle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amamenko","download_url":"https://codeload.github.com/amamenko/hollywoodle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249040072,"owners_count":21202816,"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":["game","hollywood","mongodb","movies","oscars","tmdb-api","typescript","wordle"],"created_at":"2024-10-14T02:47:17.679Z","updated_at":"2025-04-15T09:10:56.162Z","avatar_url":"https://github.com/amamenko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/amamenko/hollywoodle#gh-dark-mode-only\"\u003e\n   \u003cimg src=\"./client/src/assets/LogoWhite.svg\" width=\"400\" /\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://github.com/amamenko/hollywoodle#gh-light-mode-only\"\u003e\n    \u003cimg src=\"./client/src/assets/LogoBlack.svg\" width=\"400\" /\u003e\n  \u003c/a\u003e\n  \u003ch3 align=\"center\" height=\"50\"\u003eHollywoodle\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    A MERN-stack Hollywood-themed\n    \u003cbr /\u003e\n    Wordle Spinoff Game\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://hollywoodle.vercel.app/\"\u003eVisit Website\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/amamenko/hollywoodle/issues\"\u003eReport Issue\u003c/a\u003e \n  \u003c/p\u003e\n\u003c/p\u003e\n\n## Background\n\n[Wordle](https://www.nytimes.com/games/wordle/index.html) is a massively popular web-based [word game](https://en.wikipedia.org/wiki/Wordle) initially created by Welsh software engineer [Josh Wardle](https://en.wikipedia.org/wiki/Josh_Wardle) and currently owned by the [New York Times Company](https://www.nytimes.com/2022/01/31/business/media/new-york-times-wordle.html). Since the game's incepetion, many clones and similar spin-off games have been created - perhaps the largest listing of all such games can be found at the [Wordleverse website](https://wordleverse.net/).\n\nIn March of 2022, it seemed that the Wordleverse had a dearth of movie-related Wordle spin-offs. With the [94th Academy Awards](https://en.wikipedia.org/wiki/94th_Academy_Awards) (popularly known as the Oscars) quickly approaching, the timing seemed perfect for a Hollywood-themed Wordle-like game to enter the Wordleverse.\n\nOriginally the brainchild of Alex Jaloza, Hollywoodle provides users two new daily actors to link either by movie or by co-star with the fewest possible guesses. A user's \"score\" is divided into two components - degrees of separation and number of moves.\n\nThe degrees of separation follows the original rules of the [Six Degrees of Kevin Bacon](https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon) and is defined as the number of correctly guessed films that connect the two actors.\n\nThe player's moves are defined as the sum of the player's interactions while completing a game. The user gains a certain amount of \"moves\" for each guess - 1 move for a correct guess, 3 moves for an incorrect guess, and 2 moves for a guess of a movie that only features the final actor and not the first or current one (partial credit). If a user needs a hint they are penalized 1 move.\n\nIn essence, the objective of the game is to link the two given actors with as few moves as possible - similar to the [Six Degrees of Kevin Bacon](https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon).\n\n## Functionality\n\nHollywoodle is built with the [MERN](https://www.geeksforgeeks.org/mern-stack/) stack and features a React-Typescript front-end with a Node/Express Typescript server linked to a [MongoDB Atlas Database](https://www.mongodb.com/cloud/atlas/lp/try2?utm_source=google\u0026utm_campaign=gs_americas_united_states_search_core_brand_atlas_desktop\u0026utm_term=mongodb%20atlas\u0026utm_medium=cpc_paid_search\u0026utm_ad=e\u0026utm_ad_campaign_id=12212624338\u0026adgroup=115749704063\u0026gclid=CjwKCAjwuYWSBhByEiwAKd_n_lJ4kymFETif8K0fhDtRPrhaNIB_lQsxRKht4u1YhiX-tQDOXAwD2hoCS9kQAvD_BwE). The application can be broken down into two parts:\n\n### Server-side\n\n- Uses the [TMDB API](https://developers.themoviedb.org/3/people/get-popular-people) to update and store the details of two popular actors (including names, images, TMDB IDs, genders, and most popular recent movie data) in a MongoDB Atlas Database every night at midnight ET.\n- Queries the MongoDB database to send actor data to the front-end (both daily and archived data.)\n- If a user completes the connection for the first time that day, updates aggregated list of all top paths played by players based on degrees of separation and popularity.\n- Sends live changes of top daily paths via [Socket.IO](https://socket.io/) to client side if a user is viewing the top paths component.\n\n### Client-side\n\n- Requests actor data (daily or archived) from the backend and renders details about the initial and final actor for the user to guess the relation.\n- Sets a [dark/light-mode](https://css-tricks.com/a-complete-guide-to-dark-mode-on-the-web/) theme based on the user's native preferred specification (although this can also be manually toggled by the user).\n- Uses React's [Context API](https://reactjs.org/docs/context.html) to store and access widely-used state variables such as total moves and dark-mode configuration throughout the application.\n- [Autosuggests](https://github.com/moroshko/react-autosuggest) movies or actors (details of which are once again fetched from TMDB) based on a user's search input.\n- Determines the correctness of a user's guess selection by means of movie cast ID lookup that searches for a match using TMDB's movie and actor IDs.\n- Displays a popcorn emoji (🍿) [confetti rain effect](https://www.npmjs.com/package/react-rewards) when a user successfuly links the first given actor with the final given actor.\n\n## Deployment\n\nClient-side deployed with [Vercel](https://vercel.com/). Custom domain from [Freenom](https://www.freenom.com/en/index.html?lang=en) with DNS routing provided by [Cloudflare](https://www.cloudflare.com/).\n\nServer deployed via [Heroku](https://www.heroku.com/). Free Heroku dyno kept awake with [UptimeRobot](https://uptimerobot.com/).\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE.txt` for more information.\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nAvraham (Avi) Mamenko - avimamenko@gmail.com\n\nProject Link: [https://github.com/amamenko/hollywoodle](https://github.com/amamenko/hollywoodle)\n\n\u003c!-- PRESS --\u003e\n\n## Press Feature\n\nMetro UK - [\"Wordle meets Six Degrees Of Kevin Bacon in Hollywoodle\"](https://metro.co.uk/2022/05/23/wordle-meets-six-degrees-of-kevin-bacon-in-hollywoodle-16695016/)\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## Acknowledgements\n\n- [The Movie Database (TMDB) API](https://developers.themoviedb.org/3)\n- [Heroku](https://www.heroku.com/)\n- [UptimeRobot](https://uptimerobot.com/)\n- [node-cron](https://www.npmjs.com/package/node-cron)\n- [react-rewards](https://www.npmjs.com/package/react-rewards)\n- [Best-README-Template](https://github.com/othneildrew/Best-README-Template)\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge\n[license-url]: https://github.com/amamenko/hollywoodle/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://www.linkedin.com/in/avrahammamenko\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famamenko%2Fhollywoodle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famamenko%2Fhollywoodle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famamenko%2Fhollywoodle/lists"}