{"id":23869160,"url":"https://github.com/extrawest/triple_seven_slots_game","last_synced_at":"2025-04-14T13:53:17.955Z","repository":{"id":121938823,"uuid":"598035364","full_name":"extrawest/triple_seven_slots_game","owner":"extrawest","description":"Triple Seven Slots Game in Flutter","archived":false,"fork":false,"pushed_at":"2023-02-15T11:58:04.000Z","size":1217,"stargazers_count":33,"open_issues_count":0,"forks_count":21,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T17:46:38.560Z","etag":null,"topics":["dart","demo","firebase","firebase-hosting","flutter","flutter-testing","flutter-web","game","gherkin","slot-machine","spa","spin-wheel","web"],"latest_commit_sha":null,"homepage":"https://triple-seven-slots.web.app/","language":"Dart","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/extrawest.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}},"created_at":"2023-02-06T09:00:10.000Z","updated_at":"2025-03-30T01:39:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"8bb7106b-5dde-48cb-9576-4418df92cae2","html_url":"https://github.com/extrawest/triple_seven_slots_game","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Ftriple_seven_slots_game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Ftriple_seven_slots_game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Ftriple_seven_slots_game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Ftriple_seven_slots_game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/extrawest","download_url":"https://codeload.github.com/extrawest/triple_seven_slots_game/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248891640,"owners_count":21178675,"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":["dart","demo","firebase","firebase-hosting","flutter","flutter-testing","flutter-web","game","gherkin","slot-machine","spa","spin-wheel","web"],"created_at":"2025-01-03T12:16:15.750Z","updated_at":"2025-04-14T13:53:17.942Z","avatar_url":"https://github.com/extrawest.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Triple seven slots game\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)]()\n[![Maintaner](https://img.shields.io/static/v1?label=Roman%20Ovsepian\u0026message=Maintainer\u0026color=red)](mailto:roman.ovsepian@extrawest.com)\n[![Ask Me Anything !](https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg)]()\n![GitHub license](https://img.shields.io/github/license/Naereen/StrapDown.js.svg)\n![GitHub release](https://img.shields.io/badge/release-v1.0.0-blue)\n![Code coverage](https://img.shields.io/badge/Code%20coverage-64%25-yellowgreen)\n\n## PROJECT INFO\n\n- **Triple seven slots game based on the latest version of Flutter**\n- **Game is properly working on Android, iOS and WEB**\n\n\n## Features\n\n- Slot machine ([roll_slot_machine](https://github.com/extrawest/roll_slot_machine) package)\n- Ability to make bet, user balance is locally stored\n- Spin wheel each 8 hours\n- Different lotties for prizes and balance increasing\n\n## Demo\n\n[Triple Seven Slots Game](https://triple-seven-slots.web.app)\n\nhttps://user-images.githubusercontent.com/117409513/216936860-b72e2d04-4780-4d4c-bd6f-257d86f44a13.mp4\n\n\n### Installing:\n\n**1. Clone this repo to your folder:**\n\n```\ngit clone https://github.com/extrawest/triple_seven_slots_game.git\n```\n\n**2. Change current directory to the cloned folder:**\n\n```\ncd triple_seven_slots_game\n```\n\n**3. Get packages**\n\n```\nflutter pub get\n```\n\n## Testing\n### Unit tests\nTo run unit test run the following command in the terminal\n```shell\nflutter test test/unit_test/\u003cselect_file\u003e\n```\n\n### Widget test\nTo run widget test run the following command in the terminal\n\n```shell\nflutter test test/widget_test/\u003cselect_file\u003e --dart-define IS_TESTING=true\n```\nIf you are testing slot machine and want to specify prize, run:\n\n```shell\nflutter test test/widget_test/\u003cselect_file\u003e --dart-define IS_TESTING=true --dart-define MOCK_SLOT_MACHINE_PRIZE_INDEX=\u003cchoose prize index\u003e\n```\n\n### Integration test\nIn order to run integration test you have to run the following command:\n\n```shell\nflutter test integration_test/app_test.dart --dart-define IS_TESTING=true --dart-define MOCK_SLOT_MACHINE_VALUES=\u003cchoose prize index\u003e\n```\n\n### BDD testing\nTo create new BDD tests, follow next steps\n\n**1. Create new \u003cfile_name\u003e.feature file(only if you want to test new features, otherwise, open .feature file of existing feature)**\n\n**2. Add all scenarios you need**\n\n**3. Save file and run:**\n\n```\nflutter packages pub run build_runner build watch --delete-conflicting-outputs\n```\n\n**4. Review the generated code, and modify files, if there is some errors(don't modify main test file of the feature, update only steps files)**\n\n\n## Setup code coverage preview\n\nmacOS or Linux:\n\nAll you have to do is to run these three commands\n```shell\n# Generate `coverage/lcov.info` file\nflutter test --coverage\n# Generate HTML report\n# Note: on macOS you need to have lcov installed on your system (`brew install lcov`) to use this:\ngenhtml coverage/lcov.info -o coverage/html\n# Open the report\n# MacOS\nopen coverage/html/index.html\n# Linux\nxdg-open coverage/html/index.html\n```\n\n\u003eThe generated HTML report will create a lot of files. To avoid checking them in to git, add `coverage`/ to your `.gitignore` file.\n\nWindows:\nNow create a file called `genhtml.perl` inside your flutter project root directory. (Make sure to .gitignore it) Then in the file, copy and paste the content this: https://raw.githubusercontent.com/linux-test-project/lcov/master/bin/genhtml\n\nFinally open git bash and run `$ ./genhtml.perl ./coverage/lcov.info -o coverage/html`\n\nCheck You are done html files at `coverage/html`.\n\nOn android studio, select index.html then CTRL+SHIFT+C to copy the file path.\n\nOpen Chrome and on the url bar add `file:///+CTRL+V`. Tap enter. You are done.\n\u003cbr\u003e\n\n\n## Firebase hosting\n\n1. In order to add new build to Firebase hosting, follow these commands\n\n```shell\nfirebase login\n```\n```shell\nfirebase init\n```\n2. Choose account, then choose Hosting as an option\n3. Select Firebase project\n4. Run:\n```shell\nflutter build web\n```\n```shell\nfirebase deploy\n```\n\n\nCreated by Roman Ovsepian\n\n[Extrawest.com](https://www.extrawest.com), 2023\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrawest%2Ftriple_seven_slots_game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fextrawest%2Ftriple_seven_slots_game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrawest%2Ftriple_seven_slots_game/lists"}