{"id":22253110,"url":"https://github.com/speaud/o3_pool_app_exercise","last_synced_at":"2025-10-14T22:11:08.886Z","repository":{"id":79331393,"uuid":"112257241","full_name":"speaud/o3_pool_app_exercise","owner":"speaud","description":null,"archived":false,"fork":false,"pushed_at":"2017-12-01T07:46:29.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T12:27:01.651Z","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/speaud.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-27T22:40:49.000Z","updated_at":"2017-11-28T03:45:50.000Z","dependencies_parsed_at":"2023-05-30T04:00:26.360Z","dependency_job_id":null,"html_url":"https://github.com/speaud/o3_pool_app_exercise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/speaud/o3_pool_app_exercise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speaud%2Fo3_pool_app_exercise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speaud%2Fo3_pool_app_exercise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speaud%2Fo3_pool_app_exercise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speaud%2Fo3_pool_app_exercise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/speaud","download_url":"https://codeload.github.com/speaud/o3_pool_app_exercise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speaud%2Fo3_pool_app_exercise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021742,"owners_count":26087053,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-03T07:16:43.420Z","updated_at":"2025-10-14T22:11:08.881Z","avatar_url":"https://github.com/speaud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# POOL APP EXERCISE\n\n\u003e NOTE: The instructions initially given to me are reiterated below\n\nAt O3, we love pool, but we love new technology and data even more. So, we frequently use pool or more specifically pool game tracking as a test bed for new frameworks and libraries.\n\nPlease develop an application that can be used for pool game tracking. \n\nIt should have the following features / functionality:\n\n* Create Players (you do not need to implement updating and deleting players )\n* Game management\n  * Select 2 players for a game\n  * Choose a winner\n* Leaderboard of players with the most wins\n* Should be usable on a variety of device sizes (aka Responsive)\n\nFeel free to use technologies you think are most appropriate, but be prepared to back up your decisions.\n\nPlease deliver a link to the app and the code for it on github.\n\n------\n\n# Developer Notes\n\n### Preamble\n\nAt first I was going to haul-off to find some canvas-based/WebGL interactive pool game example I could rip then re-purpose it for...(i.e., web, iOS, Android) stack bundle and…you get the point.\n\nHowever, the notion of KISS/Rule of least power quickly kicked in…shortly followed by Atwood’s Law, et al., and so-forth...\n\nThen couple that notion with the fact that whomever would have to clone then run this locally...\n\nBasically I didn’t want box configuration, IDE/DB export formatting issues, nor local dependency issues (e.g., MongoDB data path, missing global dependencies, incompatible unix-like flavors, etc.) when whomever was trying to run this...\n\nSo what would be the best way to go about this...what's something I want to work with...nonetheless, this is where I ended up at.\n\n### Overview\n\nIn this repo we're using a React + Redux bundle alongside Webpack which we leverage for the local dev server, HMR, release bundling, transpiler (via Babel)...\n\nI went with React Bootstrap to posture and meet the responsive spec declared in the instructions. It, React Bootstrap, is not my favorite but it works for this exercise.\n\n\u003e NOTES: I have tab index set to 2 using the babel syntax package. You can uncomment DevTools in ./src/index.js for redux dev tools. Open the browser console for logger output. There are some residual dependencies declared in the package.json file that are used by the store but not truly required for this exercise however that won't be an issue here. Just making all that known...\n\n###### Directory Structure\n\n* app\n  * [bin] - compiled release build \n  * etc - config\n  * [sudo browser stdout]\n  * [node modules]\n  * public\n  * src - client code-base\n    * actions\n    * components\n    * constants\n    * containers\n    * reducers\n    * store\n    * styles\n\n\u003e Directories enclosed in \"[]\" are ignored/not included in the repo  \n\n### Getting Started\n\n\u003e Requirements: Node v6+, global NPM dependencies if admin-like UAC requirements are needed if your running Darwin OS (i.e., if you're using a Mac) or some Linux flavored dist\n\nClone the repo\n\nWithin the root of this repo run the following command ```cd app \u0026\u0026 npm i \u0026\u0026 sudo npm run start```\n\n\u003e NOTE: `sudo` is not required for Windows OS\n\n[Here is a link to a screencast which shows the working state of this application](https://youtu.be/-yYifmdLRH4)\n\nThat's it from me. You should be up-and running...if there are any issues/questions please feel free to reach out via email or just open an issue here if need-be then I'll respond accordingly\n\n### Closing Notes\n\n\"Things missing,\" that should be included in a formal project such as this, if it were created for a production release or if I had an inordinate amount time and whatnot, but haven't been would include:\n\n* Structured testing methods for both unit and e2e testing, in this case a Jest + Enzyme + ...would've been included\n* Code quality management and coverage tools (e.g., JSLint, JSHint, DeepScan, etc.)\n* Formal documentation. In this case, for the client side, JSDoc would've been the go-to\n* Structured VCS management (e.g., repo branching, release tagging)\n* Formal backend database and API layer. In this case, a MEAN/MERN-stack, MongoDB for the database then build out API's using a Express server instance (standalone or coupled) then document with Postman or...\n* Various production-related concerns such as CI, bundling chunking/splitting/optimization, environment config, etc...\n\n...but again, we can talk more about that at another time.\n\n------\n\nOther referance materials\n\n* [CodePen](https://codepen.io/SpeauDetcR/#)\n* [Personal Website](http://joshuamummert.com/)\n* [LinkedIn](https://www.linkedin.com/in/jmummert/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeaud%2Fo3_pool_app_exercise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspeaud%2Fo3_pool_app_exercise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeaud%2Fo3_pool_app_exercise/lists"}