Skip to content

Commit

Permalink
Merge pull request #148 from SkewedAspect/bs-vue-next
Browse files Browse the repository at this point in the history
Switch to BoostrapVueNext, Bootstrap v5 and migrate off @vue/compat
  • Loading branch information
Morgul authored May 15, 2024
2 parents 2769a50 + 203307a commit ac3c8b0
Show file tree
Hide file tree
Showing 115 changed files with 3,242 additions and 2,831 deletions.
48 changes: 23 additions & 25 deletions docs/revamp.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,30 @@
# Infrastructure Revamp
# Infrastructure Revamp MkII

I want to rework a lot of the infrastructure so that it's easier to add things to in the future. The basic idea is this:
Back at it again.

* [X] ~~Switch to Vuetify (I don't like it's API as much but it's worlds faster, with better components.)~~
* [X] Switch to Bootstrap v4 (and Bootstrap-Vue)
* [X] Add a base model class that knows if it's dirty ~~(Proxy-based)~~
* [X] Use RxJS to manage state; the current character becomes an observable
* [X] ~~Evaluate using `vuex` instead of RxJS, and the special models.~~
* [X] Move all resource access (like loading characters, systems, etc) into 'resource-access'
* [X] Move all state holding and application logic to 'managers'
* [X] Make components very, very dumb. They only have their own state, and logic relevant to their display.
* [X] Move to ~~webpack~~ parcel.
* [X] Implement `socket.io` so open pages stay in sync as changes are made. (Think, GM opening character pages.)
* [X] Move to `knex` and sqlite (with the option for `postgres` for deployment)
* [X] Move away from one table per system character to a single character record.
* [X] ~~The system specific data would be a `any()` blob of JSON.~~
* [X] Each system would define an [ajv][] schema for it's specific data.
* [X] ~~Evaluate and possibly implement [Joi][joi] instead of [AJV][ajv].~~
* [X] Any additional data (classes, spells, etc) needed should be treated as static data, and loaded as seeds into the database.
* [X] Move and refactor systems; they should no longer be their own thing, they should be integrated as just run-of-the-mill routes/components, as part of the application. No need for shared units like current.
* [X] Convert to typescript
* [ ] Convert to better validation/data model (See #52)
* [ ] Setup a reasonable ~~docker build~~/deploy pipeline in GitHub. (PARTIAL)
* [X] Setup eslint MR checking in GitHub.
* [ ] Switch to Bootstrap v5 (and Bootstrap-Vue-Next)
* [ ] Switch to New [Color-picker][]
* [ ] Convert from decoders to better validation/data model
* [ ] Evaluate options in 2024 ([ajv][], [ajv-ts][] [joi][], [zod][], etc)
* [ ] Add local user registration, link with Google / Facebook / Twitter
* [ ] Remove/replace the 'supplements' system with a more customized system per system.
* [ ] Move project to GitLab (and make GitHub a mirror)
* [ ] Set Pipelines for CI/CD
* [ ] Dev deploys on all master merges
* [ ] Beta deploys on all beta tags
* [ ] Prod deploys on all release tags

This should really set us up for more complex interactions and a much faster time to implementing Campaigns.
## New Features
* [ ] Improved Dashboard
* [ ] Campaigns
* [ ] Maps
* [ ] Mooks

<!-- Links -->

[ajv]: http://epoberezkin.github.io/ajv/
[ajv-ts]: https://github.com/vitalics/ajv-ts
[joi]: https://github.com/hapijs/joi
[zod]: https://github.com/colinhacks/zod

_Note: This should move into issues, but for now it was easier to think about in a markdown file._
[color-picker]: https://github.com/cyhnkckali/vue3-color-picker
Loading

0 comments on commit ac3c8b0

Please sign in to comment.