TrueKuehli / PruneTree

App for creating Sims 4 family trees. Fork of the Plum Tree app using local browser storage to replace API calls.
https://prunetree.app/
ISC License
2 stars 3 forks source link
family-tree sims sims4

The Prune Tree App

Open App Link Shield GitHub License Shield Deployment Workflow Shield Validation Workflow Shield

- THIS PROJECT IS CURRENTLY UNDER DEVELOPMENT AND 
- MAY EXHIBIT BUGS THAT CAN CAUSE DATA LOSS. 
- USE WITH CAUTION.

Fork of the Plum Tree app pruning API calls from the front-end code and replacing them with local browser storage. This offers a replacement for the base features of the original app, while allowing the app to be deployed using only static assets.

The app itself is built on the React framework with replacements to the server API utilizing an IndexedDB in-browser database. The build system uses Webpack to bundle the app as static assets.

React Router is used for navigating between pages, only the BrowserRouter is used (no SSR).

Trees are rendered using D3, specifically the tree hierarchy.

Contributing

Conventional Commits GitHub Issues Shield GitHub Pull Requests Shield

Any contributions to the project are welcome, including issues, pull requests, and forks. If you have any questions or suggestions, feel free to open an issue.

The deployment scripts expects commits to use the conventional commits style to auto-generate the changelog using release-please. If you're working with a fork of the project and want to directly commit your changes to the main branch, you may consider using commitlint or similar tools to ensure your commits are formatted correctly for the automatic changelog generation.

By default, the following commit types are used. Commit types marked as hidden will not be included in the changelog.

[
  {type: 'feat', section: 'Features'},
  {type: 'fix', section: 'Bug Fixes'},
  {type: 'perf', section: 'Performance Improvements'},
  {type: 'revert', section: 'Reverts'},
  {type: 'chore', section: 'Miscellaneous Chores', hidden: true},
  {type: 'docs', section: 'Documentation', hidden: true},
  {type: 'style', section: 'Styles', hidden: true},
  {type: 'refactor', section: 'Code Refactoring', hidden: true},
  {type: 'test', section: 'Tests', hidden: true},
  {type: 'build', section: 'Build System', hidden: true},
  {type: 'ci', section: 'Continuous Integration', hidden: true}
]

Running Your Own Instance

To run the app locally in a development environment, follow these steps:

  1. Use npm install to install the repo dependencies
  2. Run npm start to start a local dev server (this may take a minute or two)
  3. Go to http://localhost:8080/ when the log reads Compiled successfully.

We also provide built releases of the app in the releases section of this repo, including older versions, which you can use to host the app yourself.

Deploying

The workflows in the .github/workflows directory are used to automate validation and deployment to GitHub pages. Validation is run on every push to the main branch, ensuring dependencies are up-to-date, the code compiles, tests pass, and the code is formatted correctly.

The deployment automatically generates a release pull-request using release-please on each push to the main branch. This PR includes a changelog of all user-facing changes since the last release. Merging this PR automatically builds and deploys a new release of the app to GitHub pages. All release files are also uploaded to the Releases page of the repo.

Attribution

Many thanks to Tobias Gray for creating and maintaining the original Plum Tree app, and for making the source code available for anyone to use.