{"id":16684857,"url":"https://github.com/simform-solutions/scrabble_club","last_synced_at":"2026-07-15T21:35:30.224Z","repository":{"id":42607028,"uuid":"198622295","full_name":"simform-solutions/scrabble_club","owner":"simform-solutions","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-14T06:32:52.000Z","size":63,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-11T09:10:15.396Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/simform-solutions.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}},"created_at":"2019-07-24T11:29:48.000Z","updated_at":"2019-07-24T15:02:20.000Z","dependencies_parsed_at":"2022-07-07T22:40:28.658Z","dependency_job_id":null,"html_url":"https://github.com/simform-solutions/scrabble_club","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simform-solutions/scrabble_club","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simform-solutions%2Fscrabble_club","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simform-solutions%2Fscrabble_club/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simform-solutions%2Fscrabble_club/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simform-solutions%2Fscrabble_club/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simform-solutions","download_url":"https://codeload.github.com/simform-solutions/scrabble_club/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simform-solutions%2Fscrabble_club/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35522129,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-15T02:00:06.706Z","response_time":131,"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-10-12T14:45:16.867Z","updated_at":"2026-07-15T21:35:30.189Z","avatar_url":"https://github.com/simform-solutions.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simformsolutions/scrabble_club\n\n## Description\n\nA scrabble club requires a system to store members’ information and provide leader boards to show their top performing players.\n\nFor members we would want to store information such as the date they joined the club and their contact details.\n\nAll recorded scrabble games are head to head matches between 2 players, the player with the highest score at the end of the game wins.\n\n\n## Requirements\n\nThis demo currently works with:\n\n* Rails 5.2.x\n* PostgreSQL\n\nIf you need help setting up a Ruby development environment, check out these [Rails OS X Setup Guide](https://mattbrictson.com/rails-osx-setup-guide).\n\n## Installation\n\nTo make this run on your system, follow below steps:\n\n1.  Clone the repository\n```\ngit clone git@github.com:simformsolutions/scrabble_club.git\n```\n2. Check your Ruby version\n```\nruby -v\n```\nThe ouput should start with something like ruby `2.5.1` If not, install the right ruby version using `rvm` (it could take a while)\n\n3. Install dependencies\n```\nbundle install\n```\n4. Initialize the database\n```\nrails db:create db:migrate db:seed\n```\n5. run application\n```\nrails s\n```\n\n## What does it do?\n\nThe demo will perform the following steps:\n\n1. Create new player\n2. Create new game with players\n3. Generate leader board for games\n\n## What is included?\n\n* Database schema definition (create table statements) of demo \n* A member’s profile screen showing their\n  * number of wins\n  * number of losses\n  * their average score\n  * their highest score, when and where it was scored, and against whom\n* Interfaces to create and edit members’ details, such as name, contact number etc.\n* A leader board screen to list the members with the top 10 average scores, for those members who have played at least 10 matches.\n\n## Database Schema\n\nDatabase tables used as below\n* players to store player details \n```sql\ncreate_table \"players\", force: :cascade do |t|\n    t.string \"first_name\"\n    t.string \"last_name\"\n    t.string \"contact_number\"\n    t.string \"email\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\n```\n\n* games to store game details\n\n```sql\ncreate_table \"players\", force: :cascade do |t|\n    t.string \"first_name\"\n    t.string \"last_name\"\n    t.string \"contact_number\"\n    t.string \"email\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\n```\n\n* participants to store participant details\n\n```sql\ncreate_table \"participants\", force: :cascade do |t|\n    t.float \"score\"\n    t.bigint \"player_id\"\n    t.bigint \"game_id\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\n```\n\n* Foreign keys\n\n```sql\nadd_foreign_key \"participants\", \"games\"\nadd_foreign_key \"participants\", \"players\"\n\n````\n  * Indexes\n\n  ```sql\n  t.index [\"game_id\"], name: \"index_participants_on_game_id\"\n  t.index [\"player_id\"], name: \"index_participants_on_player_id\"\n```\n\n## Screenshots\n  * Player screen\n\n    * [Add new Player](https://nimb.ws/4zt7YE)\n    * [List of Players](https://nimb.ws/3QbSUE)\n    * [Player Profile](https://nimb.ws/WYMqo6)\n    * [Edit/Delete Player profile](https://nimb.ws/znVvOC)\n\n  * Game screen\n\n    * [Add new Game](https://nimb.ws/1bFpRm)\n    * [List of Games](https://nimb.ws/uvxUVL)\n    * [Game details](https://nimb.ws/tGwMqm)\n    * [Edit/Delete Game](https://nimb.ws/MetcSr)\n  \n  * Leader board\n\n    * [Leader board](https://nimb.ws/6GtARi)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimform-solutions%2Fscrabble_club","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimform-solutions%2Fscrabble_club","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimform-solutions%2Fscrabble_club/lists"}