{"id":16516742,"url":"https://github.com/adamspannbauer/shiny-sql-airbnbandit","last_synced_at":"2026-04-28T01:33:23.940Z","repository":{"id":161536235,"uuid":"636230494","full_name":"AdamSpannbauer/shiny-sql-airbnbandit","owner":"AdamSpannbauer","description":"Use clues and SQL to track down the AirbnBandit cyber criminal.","archived":false,"fork":false,"pushed_at":"2023-10-05T11:36:12.000Z","size":60370,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-14T03:42:44.519Z","etag":null,"topics":["database","r","shiny","sql"],"latest_commit_sha":null,"homepage":"https://spannbaueradam.shinyapps.io/sql-airbnbandit/","language":"R","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/AdamSpannbauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-05-04T11:46:39.000Z","updated_at":"2023-10-05T11:09:10.000Z","dependencies_parsed_at":"2023-05-30T00:45:36.409Z","dependency_job_id":"ed04387a-2d52-40b8-88e7-40c0da281fa2","html_url":"https://github.com/AdamSpannbauer/shiny-sql-airbnbandit","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"a47c33e7caefaa02a068a57308a25811ffd01290"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AdamSpannbauer/shiny-sql-airbnbandit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamSpannbauer%2Fshiny-sql-airbnbandit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamSpannbauer%2Fshiny-sql-airbnbandit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamSpannbauer%2Fshiny-sql-airbnbandit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamSpannbauer%2Fshiny-sql-airbnbandit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdamSpannbauer","download_url":"https://codeload.github.com/AdamSpannbauer/shiny-sql-airbnbandit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamSpannbauer%2Fshiny-sql-airbnbandit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32362781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"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":["database","r","shiny","sql"],"created_at":"2024-10-11T16:26:31.225Z","updated_at":"2026-04-28T01:33:23.914Z","avatar_url":"https://github.com/AdamSpannbauer.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"right\"\u003e\n  \u003cimg src=\"./www/md_imgs/hoodie-hacker-laptop.png\" width=\"35%\" style = \"border-radius:10px\" align=\"right\"\u003e\n\u003c/p\u003e\n\n\n# AirbnBandit SQL hunt\n\nThese are just the docs! Find the app here: [https://spannbaueradam.shinyapps.io/sql-airbnbandit/](https://spannbaueradam.shinyapps.io/sql-airbnbandit/)\n\n\u003cdiv style=\"width:60%;\"\u003e\n\u003cpre\u003e\nWANTED: AirbnBandit\n\nFor crimes against the city of Asheville.\n\nThe suspect should be assumed to be dangerous and\narmed with the knowledge of Bayesian statistics.\n\u003c/pre\u003e\n\u003c/div\u003e\n\n## The background\n\nA crime was committed in Asheville, NC.  The cyber criminal was a major user of Airbnb to avoid staying in one spot or using the same IP address for too long.\n\nYour job is to scour for clues in a database holding all of the Airbnb listings in Asheville.  Some of our other detectives' intel will help guide your investigation.\n\n## The task\n\nEach clue will lead you to a **listing ID AND a letter**.  This information will allow you to log on to the AirbnBandit's computer to help us gather the last pieces of evidence we need to make the charges stick.\n\n* Username: unscramble the letters from each clue\n  * The username is the bandit's last name. If George Washington was the bandit then the username would be `WASHINGTON`.\n  * If I was the bandit and the clues gave you the letters: `\"R\", \"B\", \"A\", \"N\", \"S\", \"A\", \"E\", \"U\", \"N\", \"P\"` then the username would be `SPANNBAUER` (thankfully the bandit has a more common and shorter last name).\n* Password: all of the listing ids in order of the clue they came from\n  * If you find out the 6 listing ids are `[1, 2, 3, 4, 5, 6]` then the password would be `123456`\n  * Note that the ids are more than one digit so the password will be lengthy; an example of one id might be: `2615869`.  All of the ids in the password are 7 or 8 digits long.\n\nOnce you have the Username and Password try it out on the login page!!\n\n## The answer key\n\nNo peeking until you've tried! - [`answer_key_queries.sql`](answer_key_queries.sql)\n\n## The app\n\n### Example clue page\n\nRead the clue carefully, craft your query, and check a piece of your answer.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"./readme/example-clue-page.png\" width=\"70%\" style = \"border-radius:10px\" align=\"center\"\u003e\n\u003c/p\u003e\n\n\n### Example login attempt\n\nOnce you've discovered the username and password test them on the login page.  You'll get a response via gif if you've been successful.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"./readme/example-login-page.png\" width=\"70%\" style = \"border-radius:10px\" align=\"center\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e\n  \u003cimg src=\"./www/md_imgs/database-laptop.png\" width=\"35%\" style = \"border-radius:10px\" align=\"right\"\u003e\n\u003c/p\u003e\n\n## SQL resources\n\nFirst things first, this is not a SQL tutorial! Here are links to various SQL notes, activities, etc.\n\n* Free stuff!\n  * [A SQL cheatsheet from learnsql.com](https://learnsql.com/blog/sql-basics-cheat-sheet/sql-basics-cheat-sheet-a4.pdf)\n  * [Adam S. notes from another SQL workshop](https://drive.google.com/file/d/1JxDmLWsSaiGeqZd8sgz_FcfeWjNIeFbg/view)\n  * [Quick bite-sized learning from w3schools.com](https://www.w3schools.com/sql/)\n  * [Longer form tutorial from sqlbolt.com](https://sqlbolt.com/)\n  * [Longer form tutorial from selectstarsql.com](https://selectstarsql.com/)\n  * [SQL murder mystery!! (from knightlab.com)](https://mystery.knightlab.com/)\n    * This wonderful resource is the inspo for this activity\n  * Practice prompts: [codewars.com](codewars.com), [leetcode.com](leetcode.com), [hackerrank.com](hackerrank.com), \u0026 more\n* Not free..\n  * [DataQuest SQL courses](https://www.dataquest.io/path/sql-skills/)\n  * [DataCamp SQL courses](datacamp.com/learn/sql)\n    * If you're a student in UTK's BAS dept, we often have subscriptions available at the start of each semester\n\n## About the data\n\n### Data source\n\nAvailable tables hold information about Airbnb listings in Asheville, North Carolina.\n\nDownloaded from http://insideairbnb.com/get-the-data/ (files downloaded: `calendar.csv.gz`, `reviews.csv.gz`, \u0026 `listings.csv.gz`)\n\nData extract created 2023-03-19.\n\n### Table relationships\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./www/md_imgs/database-diagram.jpg\" width=\"85%\" style = \"border-radius:10px\"\u003e\n\u003c/p\u003e\n\n\n### Table names and columns\n\n#### `calendar`\n\n* listing_id\n* cal_date\n* available\n* price\n* adjusted_price\n* minimum_nights\n* maximum_nights\n\n#### `reviews`\n\n* listing_id\n* id\n* review_date\n* reviewer_id\n* reviewer_name\n* comments\n\n#### `listings` - most clues use only this table\n\n* id\n* listing_url\n* scrape_id\n* last_scraped\n* source\n* name\n* description\n* neighborhood_overview\n* picture_url\n* host_id\n* host_url\n* host_name\n* host_since\n* host_location\n* host_about\n* host_response_time\n* host_response_rate\n* host_acceptance_rate\n* host_is_superhost\n* host_thumbnail_url\n* host_picture_url\n* host_neighbourhood\n* host_listings_count\n* host_total_listings_count\n* host_verifications\n* host_has_profile_pic\n* host_identity_verified\n* neighbourhood\n* neighbourhood_cleansed\n* neighbourhood_group_cleansed\n* latitude\n* longitude\n* property_type\n* room_type\n* accommodates\n* bathrooms\n* bathrooms_text\n* bedrooms\n* beds\n* amenities\n* price\n* minimum_nights\n* maximum_nights\n* minimum_minimum_nights\n* maximum_minimum_nights\n* minimum_maximum_nights\n* maximum_maximum_nights\n* minimum_nights_avg_ntm\n* maximum_nights_avg_ntm\n* calendar_updated\n* has_availability\n* availability_30\n* availability_60\n* availability_90\n* availability_365\n* calendar_last_scraped\n* number_of_reviews\n* number_of_reviews_ltm\n* number_of_reviews_l30d\n* first_review\n* last_review\n* review_scores_rating\n* review_scores_accuracy\n* review_scores_cleanliness\n* review_scores_checkin\n* review_scores_communication\n* review_scores_location\n* review_scores_value\n* license\n* instant_bookable\n* calculated_host_listings_count\n* calculated_host_listings_count_entire_homes\n* calculated_host_listings_count_private_rooms\n* calculated_host_listings_count_shared_rooms\n* reviews_per_month","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamspannbauer%2Fshiny-sql-airbnbandit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamspannbauer%2Fshiny-sql-airbnbandit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamspannbauer%2Fshiny-sql-airbnbandit/lists"}