{"id":15394103,"url":"https://github.com/keneucker/biketag-website","last_synced_at":"2025-04-15T23:52:35.801Z","repository":{"id":43471806,"uuid":"129954888","full_name":"KenEucker/biketag-website","owner":"KenEucker","description":"A website for biketag.org","archived":false,"fork":false,"pushed_at":"2023-02-08T20:55:58.000Z","size":54518,"stargazers_count":32,"open_issues_count":0,"forks_count":15,"subscribers_count":4,"default_branch":"production","last_synced_at":"2025-03-29T03:01:54.614Z","etag":null,"topics":["hacktoberfest","help-wanted","html","javascript","liquid"],"latest_commit_sha":null,"homepage":"https://www.biketag.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KenEucker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["KenEucker","evan-white"],"patreon":"BikeTag","custom":"https://www.paypal.com/paypalme/keneucker"}},"created_at":"2018-04-17T19:28:36.000Z","updated_at":"2023-09-19T11:48:16.000Z","dependencies_parsed_at":"2024-10-19T02:14:11.471Z","dependency_job_id":null,"html_url":"https://github.com/KenEucker/biketag-website","commit_stats":{"total_commits":786,"total_committers":9,"mean_commits":87.33333333333333,"dds":"0.024173027989821905","last_synced_commit":"04030761d51da36bf3e44dbc2dbb535123a69ee1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenEucker%2Fbiketag-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenEucker%2Fbiketag-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenEucker%2Fbiketag-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenEucker%2Fbiketag-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KenEucker","download_url":"https://codeload.github.com/KenEucker/biketag-website/tar.gz/refs/heads/production","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173061,"owners_count":21224481,"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":["hacktoberfest","help-wanted","html","javascript","liquid"],"created_at":"2024-10-01T15:21:54.332Z","updated_at":"2025-04-15T23:52:35.782Z","avatar_url":"https://github.com/KenEucker.png","language":"JavaScript","funding_links":["https://github.com/sponsors/KenEucker","https://github.com/sponsors/evan-white","https://patreon.com/BikeTag","https://www.paypal.com/paypalme/keneucker","https://www.patreon.com/BikeTag"],"categories":[],"sub_categories":[],"readme":"# ⚠️ End Of Life ⚠️\n\u003cp align=\"center\"\u003e\t\nThe `biketag-website` project has reached end of life. We are no longer accepting pull requests or providing support for community users of this code and supporting software. This project started as a tool for people to be able to more easily play BikeTag in Portland, Oregon, socially on Reddit. This code lived much longer than it could have and I, Ken, am so happy that it worked so well for the community of BikeTag Players all over the world. Please see the new [BikeTag App][biketag-vue] for the continued free and open source offering by the BikeTag Project.\n\u003c/p\u003e\n\t\n\u003cp align=\"center\"\u003e\t\n(THANK YOU!)\n\u003c/p\u003e\n\n# biketag-website\n\n[![Build Status][travis-image]](https://travis-ci.org/KenEucker/biketag-website)\n\nA website for biketag.org\n\n![BikeTag Homepage](https://i.imgur.com/gVYRQYTm.png)\n\n## Why?\n\nTo allow anyone and everyone to play BikeTag! This site will ingest the Reddit posts playing biketag for a configured subreddit, and display them on biketag. Conversely, using the site you can create a new tag and will be automagically posted to Reddit! This lets anyone play the game without needing to know how to imgur or having a reddit account, while continuing to support those who have been playing biketag on reddit as well!\n\n## Features of the webapp\n\n![BikeTag Game](https://i.imgur.com/Vq7mweWm.png)\n\n-   See most recent round of BikeTag, and an archive of past rounds: http://portland.biketag.org\n-   A modal to play the next round (provide matching and new BikeTag images, Mystery Location description, hint, and name): http://portland.biketag.org/#tagit\n-   See all archived rounds of Biketag: http://portland.biketag.org/?count=all\n-   See an individual round of BikeTag with matching images: http://portland.biketag.org/95\n\n# Contribute\n\nIf you'd like to contribute to this project you can [file an issue](https://github.com/keneucker/biketag-website/issues), fork the code and [create a pull request](https://github.com/keneucker/biketag-website/pulls), or [support this project on patreon](https://www.patreon.com/BikeTag).\n\n# Development\n\n## Install dependencies\n\nRun `npm install` to install the node module dependencies.\n\n## Required Configuration\n\nThe app loads a set of configuration files found in the config folder. The repository is set to ignore a config.json file, for security reasons, but there's sample of the minimum configuration to get the local site to display images for the Portland subdomain, as well as the default landing page. [sample.config.json](config.sample.json). Copy this file to config/config.json\n\n`cp config.sample.json config/config.json`\n\nto get started from scratch. Note: for some features to work, API values will need to be set.\n\n## Start local server\n\nRun `npm start` to run the webserver and then navigate to http://localhost:80 or whichever port you have set in the config.json. You can also run `npm run dev` to run in debugging mode for local development, which provides greater logging and hot-reloading.\n\n## Change the website code\n\nThis project supports Embedded Javascript templating, [ejs](https://ejs.co/), for the templates served by each subdomain. A template may have either an `index.html` or `index.ejs` file in it's root that the express application will serve for a given subdomain. Using data from the config.json file as well as the data found in /data/config/, in conjunction with the raw html in the /data/content/ folder, data can be injected into the ejs templates.\n\nTo use within javascript:\n\n```\n\u003cscript\u003e\n\t// get the supportedRegions object via JSON serialization\n\tvar subs = JSON.parse(`\u003c%- JSON.stringify(supportedRegions) %\u003e`)\n\u003c/script\u003e\n```\n\nTo use within html:\n\n```\n\u003caudio id=\"biketag-jingle\"\u003e\n\t\u003c!-- insert the page.easter.jingle variable into the src attribute of this audio element --\u003e\n\t\u003csource src=\"\u003c%= page.easter.jingle %\u003e\" type=\"audio/mpeg\"\u003e\n\u003c/audio\u003e\n```\n\nThe homepage landing page is in the /templates/home/ folder using the template file index.ejs. Each template should use it's own root folder for theme resources. There is a public folder in the root of the project for items that span multiple templates. Within the public folder there is a js folder that contains javascript available to all consumption. There is also a content folder within the public folder that contains raw html content which is available for editing by site administrators using git.\n\nNote: When running in dev mode, changes to the files in the /templates/ folder are reflected immediately, with the page autoreloading.\n\n## Dependencies\n\nThis website runs on [sexpress](https://github.com/KenEucker/sexpress), a wrapper around express, which provides a series of configurable features for a multitenant website. These features include subdomain support, api authentication using passport.js, ssl support, and more. Because these features are abstracted out of the biketag-website project, the core of this application lives inside /api/biketag/index.js to handle the BikeTag specific routes and functionality.\n\nSexpress uses [clobfig](https://github.com/KenEucker/clobfig), a configurator library, which clobbers all of the files found in the /config folder. Clobfig clobbers all of the js files within the config folder that have 'config.js' in their name and all .json files.\n\n# Credits\n\nThank you to HorribleLogos.com for whatever it is that you provided.\n\nStructured content powered by Sanity.io\n\n[![Sanity.io][sanity-image]](https://sanity.io)\n\n[sanity-image]: https://raw.githubusercontent.com/keneucker/biketag-website/production/public/img/sanity-logo.png\n[paypal-image]: https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png\n[travis-image]: https://travis-ci.org/KenEucker/biketag-website.svg?branch=master\n[biketag-vue]: https://github.com/KenEucker/biketag-vue\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeneucker%2Fbiketag-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeneucker%2Fbiketag-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeneucker%2Fbiketag-website/lists"}