{"id":21374888,"url":"https://github.com/banool/aptos-infinite-jukebox","last_synced_at":"2026-03-01T16:01:52.744Z","repository":{"id":90881274,"uuid":"489455794","full_name":"banool/aptos-infinite-jukebox","owner":"banool","description":"Infinite Jukebox, powered by Aptos","archived":false,"fork":false,"pushed_at":"2022-11-05T19:18:42.000Z","size":7485,"stargazers_count":4,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-22T19:44:49.811Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dport.stream","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/banool.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":"2022-05-06T18:26:20.000Z","updated_at":"2024-03-28T16:10:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"c4752e12-0b27-413a-8951-2e1747d7daf9","html_url":"https://github.com/banool/aptos-infinite-jukebox","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/banool/aptos-infinite-jukebox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banool%2Faptos-infinite-jukebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banool%2Faptos-infinite-jukebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banool%2Faptos-infinite-jukebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banool%2Faptos-infinite-jukebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/banool","download_url":"https://codeload.github.com/banool/aptos-infinite-jukebox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banool%2Faptos-infinite-jukebox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29974321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T15:41:30.362Z","status":"ssl_error","status_checked_at":"2026-03-01T15:37:07.343Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-11-22T08:46:02.144Z","updated_at":"2026-03-01T16:01:52.738Z","avatar_url":"https://github.com/banool.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aptos Infinite Jukebox\n\nThis project is made up of three major components:\n- `frontend`: This is the frontend for the project, made with Flutter. Users install this on their device / open this on the web, hook it up to Spotify, and then tune in to the infinite jukebox.\n- `driver`: This runs periodically on a server to drive forward the move module. The driver checks the current song playing, determines if we're near the end of it, and if so, invokes vote resolution to determine which song to put on the queue next.\n- `move`: This is where the core logic lives, on the [Aptos blockchain](https://aptoslabs.com). An account owner can use this module to instantiate a jukebox. Users can then submit votes for what song plays next. Periodically the driver runs to resolve the votes. The frontend hits the REST endpoint of a fullnode to perform reads (to determine what songs to play) against the module.\n\nIn addition to the core feature components, there is also code for deploying the project under `deployment` and `.github`.\n\nEach of these components has their own README explaining how to develop and deploy them.\n\n## Learning\nRecently I found myself with a few weeks of free time to work at the periphery of the Aptos ecosystem. I wanted to build a dapp on Aptos, but found that there was a lack of open source, end to end examples showing how to do that. In particular, many of the examples didn't dive deep into certain features of the blockchain, such as tables, dealing with the on chain / off chain boundary, etc. So I made this project and wrote an accompanying guide!\n\nIf you're interested in learning about Aptos through this project, check out [LEARNING.md](./LEARNING.md).\n\n## Setting up this repo\nWhen first pulling this repo, add this to `.git/hooks/pre-commit`:\n```\n#!/bin/bash\n\ncd aptos_infinite_jukebox\n./bump_version.sh\ngit add pubspec.yaml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbanool%2Faptos-infinite-jukebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbanool%2Faptos-infinite-jukebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbanool%2Faptos-infinite-jukebox/lists"}