OpenTwinCities / adopt-a-tree

Beautify your street by watering a tree.
BSD 3-Clause "New" or "Revised" License
8 stars 12 forks source link

Refactor Adopt-A-Tree for better development of core Adopt-A vs. tree specifics #8

Open kjschiroo opened 7 years ago

kjschiroo commented 7 years ago

Adopt-A-Tree is a fork of Code for America's Adopt-A-Hydrant (which should more correctly be thought of as a general Adopt-A-Thing). Early on, we would rebase Adopt-A-Tree based on updates to Adopt-A-Hydrant, but now the code bases have deviated from each other enough that rebases are difficult.

The differences that Adopt-A-Tree has introduced fall into two categories:

  1. Changes to meet the specific requirements of the Adopt-A-Tree project (e.g. changes to the user model, refering to 'tree' instead of 'hydrant')
  2. Changes that improve the code or functionality of the Adopt-A platform (in our opinion) (e.g. DRYing some of the JavaScript).

Ideally, we should be pushing the changes in the second category upstream, so that all Adopt-As can benefit. Also, a lot of development has been happening on Adopt-A-Hydrant - development we can benefit from if we could easily pull those changes in.

It would be tremendously helpful if we could somehow sepearte the project specific code from the general platform code. I don't know what this looks like in practise, but an option to investigate is to have Adopt-A-Hydrant become a Rails engine and a gem.

kjschiroo commented 7 years ago

Created the Create an AdoptA Rails Engine ticket on the main Adopt-A-Hydrant repo.

kjschiroo commented 7 years ago

:+1:

kjschiroo commented 7 years ago

For a number of reasons, I'm inclined to close this:

What I'm starting to think now is, rather than focus on the relationship between Adopt-A-Tree and Adopt-A-Hydrant, I'd like to set an independent development and architectural path for Adopt-A-Tree. Specifically, I'd like to:

  1. Refactor the JavaScript to use a modern JS framework (anybody have thoughts on React?);
  2. Move to a pure JavaScript UI that interactions entirely via RESTful API;
  3. Continue to move configurations into yml files, making the server more generic

Given this, it seems like Adopt-A-Tree no longer operates as a fork of Adopt-A-Hydrant. In fact, being a fork of Adopt-A-Hydrant actually causes us some problems (OTC already has a fork of Adopt-A-Hydrant and can not contain another fork). (at)ballPointPenguin work do you think about unforking Adopt-A-Tree?