EBSECan/donatemask

Prepare Website Source for Fork for Other EBSECan Websites

Opened this issue · 3 comments

I would like to stand up the other websites of the charity (evidencebased.ca, communitycatscanada.ca, communitygardens.ca, etc.) based on the same core as the donatemask.ca website. I figure the easiest way would be to just fork the project and change the front-end.

However, I don't want to fork in a manner such that future core updates then have to be manually done separately on each fork. I want to keep this as simple and maintainable as possible for the whole set of the charity's disparate websites. As such, I'd like to prepare things and organize things as much as possible before the fork (or discuss alternatives if the fork approach isn't optimal!) to make long-term maintainability easier.

I welcome input on the best approach here!

What do these other sites need to do? Similar back-end needs (e.g., donation model)? The reason I ask is that you might consider planning a bit to expand your back-end to support all of them vs. spinning up multiple back-ends.

The front-ends could actually be hosted out of GitHub Pages. Since you're doing a React build for the site, we could do that in GitHub Actions whenever you merge to main, or tag, or whatever, and have it build and push it to a gh-pages branch.
This could then be served to the web. You can even do a custom domain name for each one, see https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site.

I would highly recommend that you consider creating a GitHub Organization vs. doing this out of your own account. Already we're hitting the limits of your ability to delegate rights, and an Org would solve this. You could create an org at github.com/EBSECan and then move https://github.com/mekkim/donatemask under it (i.e., github.com/EBSECan/donatemask).

Next you can invite collaborators, and create teams, so you can assign different roles for different people.

Also, you might consider waiting a few weeks more, since I'm still refactoring donatemask.

Thanks, @humphd. This discussion is very helpful and exactly the type of suggestions I needed.

I've gone ahead and created the EBSECan organization and imported the donatemask repository: https://github.com/EBSECan/donatemask - I've added you and a bunch of other members. I guess that means we should shift over to doing the work there now and archive this repository, yes?

What do these other sites need to do? Similar back-end needs (e.g., donation model)? The reason I ask is that you might consider planning a bit to expand your back-end to support all of them vs. spinning up multiple back-ends.

You've nailed it. They will all need a donation model that will be similar and will use the same payment accounts, etc. They will all also need a "store-type" model for their respective Charity Stores. For example, we will be reselling feral cat traps for TNR as part of our fundraising for that part of the charity (we already have supplier accounts and a tentative price list at https://communitycatscanada.ca/pricelist.pdf)

I definitely agree that it makes more sense to have a unified back-end and welcome your guidance on the best way to do this.

The front-ends could actually be hosted out of GitHub Pages. Since you're doing a React build for the site, we could do that in GitHub Actions whenever you merge to main, or tag, or whatever, and have it build and push it to a gh-pages branch. This could then be served to the web. You can even do a custom domain name for each one, see https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site.

I like this idea. I just don't know enough about it. I'm all for doing this. I already have the domain names registered for the respective sites.

I would highly recommend that you consider creating a GitHub Organization vs. doing this out of your own account. Already we're hitting the limits of your ability to delegate rights, and an Org would solve this. You could create an org at github.com/EBSECan and then move https://github.com/mekkim/donatemask under it (i.e., github.com/EBSECan/donatemask).

Next you can invite collaborators, and create teams, so you can assign different roles for different people.

Excellent idea! I've gone ahead and done this. Happy to enable permissions for folks as makes the most sense!

Also, you might consider waiting a few weeks more, since I'm still refactoring donatemask.

Agreed! I started this topic so that folks would know what I had in mind looking forward and we could plan. There's no huge rush and I'd rather do it right upfront rather than rush.