Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abstract out the core code from the content of the site #170

Open
KenEucker opened this issue Nov 9, 2023 · 1 comment
Open

Abstract out the core code from the content of the site #170

KenEucker opened this issue Nov 9, 2023 · 1 comment

Comments

@KenEucker
Copy link
Owner

To be able to create MotoTag, everything that is BikeTag specific must be debranded and abstracted out, and use a content context for all content elements (images, text, etc).

We could create an abstracted core library that uses a generic API and lifecycle for creating new tags and have this project take advantage of that.

How this would be accomplished? I don't know. It would be a lot of work.

@KenEucker
Copy link
Owner Author

KenEucker commented Jan 10, 2024

I think this could be accomplished in a couple of ways, for BikeTag 4.0:

  1. It's a TagGame. So rename Game to TagGame and a Tag is a Tag along with the rest of data. The format is the same as well, mystery location and found location and hint and player. The core of the api library will be abstracted away from this project and nothing should change about the contract.
  2. This new abstraction should be part of the monorepo that is created, maybe not @biketag but @taggame? Both?
  3. A fair amount of code regarding the gameplay will need to be transferred out of this project and into the TagGameAPI. Look at all of the code in functions/common/methods.
  4. BikeTag-Vue is on its way to becoming the VueComponentLibrary to be used by the BikeTagAdmin and BikeTagGame applications. With that, this core library can be abstracted mostly 1:1 from here to the future TagGameVueComponentLibrary.
  5. The Content/content of this site also needs abstracted away in this work, which is outlined in this issue, and will serve as the primary way that this transitions to a fully agnostic library.
  6. The admin code (profile, approve, autopost, etc...) should be abstracted out of this project so that it can be used in both of the biketag apps, as the admin app will also need to perform these functions. biketag-admin will be another package that is consumed by this and the biketag-app project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant