cookbook

VueJS + NodeJS Evergreen Cookbook

MIT License

Stars
458
Committers
3

Bot releases are visible (Hide)

cookbook - 0.4.1

Published by ais-one about 4 years ago

  • [chore] update packages & cleanup & work on improving documentation
  • [tested] Dockerfile, vite to GCP storage (script), backend to GCP Cloud Run (script), Test deploy backend to GCP VM (script), PM2
  • [chore] eslint & prettier for vite
  • [chore] pwa service worker & backend improvements, communication between sw and window (e.g. pushsubscriptionchange)
cookbook - 0.4.0

Published by ais-one about 4 years ago

  • [chore] update packages & cleanup & work on improving documentation
  • [table] validation
  • [frontend]
    • example-web/vite
      • use webcomponent in a webcomponent - mwc-autocomplete, mwc-multiselect, mwc-fileupload
      • provide/inject use pattern for http calls (useXhr), i18n (useI18n)
      • add PWA, FCM(google cloud) and Webspush(self hosted) functionality, apollo-client (graphql), ws
      • fixed layout bug [https://dev.to/lampewebdev/vuejs-pages-with-dynamic-layouts-problems-and-a-solution-4460]
    • REMOVED example-web/pwa and example-web/ssr
  • [full-stack]
    • fixed auth system
    • improve structure further (for microservices and CICD)
    • moved deploy scripts to respective individual project folders (example-app, example-web/vite)
cookbook - 0.3.5

Published by ais-one about 4 years ago

Backlog

  • circleci workflow
    • improve structure further
    • deploy backend to GCP Cloud Run
    • deploy SPA frontend to GCP Storage
  • backend
    • change out of jest?
    • GKE, Kubernetes
    • research auto generated REST API and Testing (keep in view dredd.io)
    • research websocket testing, improve coverage
  • frontend
  • others
    • graphql security & performance review
    • use monorepo when npm 7 is released ?
    • VueCrudX ESM build (only possible when UI framework e.g. Vuetify has ESM version and vue-cli can build ESM)
cookbook - 0.3.4

Published by ais-one about 4 years ago

  • [chore] update packages & cleanup & work on improving documentation
    • backend
      • bug fix on CRUD Table patch (remove MongoDB _id from body)
    • frontend (common-lib/esm/http.js)
      • Fetch API abort / retry
    • doc
      • jsonschema validation for MongoDB collection
cookbook - 0.3.3

Published by ais-one about 4 years ago

Version 0.3.3

  • [chore] update packages & cleanup & work on improving documentation
  • improve npm scripts to handler Windows and Unix environments
  • spa
    • removed vue-apollo wrapper to apollo client, just use apollo client directly, apollo client v2 to v3 has broken vue-apollo v3
  • vite
    • web components or no bundler required UI framework, also make code more framework agnostic
    • generic table crud
    • add echarts and leaflet example
  • backend
    • generic table crud
cookbook - 0.3.2

Published by ais-one over 4 years ago

Version 0.3.2

  • [chore] update packages & cleanup & work on improving documentation
  • make it CI/CD friendly [re-organized folders again...]
  • renamed common-app to common-lib and it contain reusable stuff
  • use NodeJS globals for CONFIG, LIB_PATH, APP_PATH, APP_NAME
  • long running process support such as tcp servers
  • cronjobs (better that cron call an API rather than run code)
  • deployment
    • Small scale - all in one server - vm, pm2, SSH (express also serves the frontend)
    • Medium to large
      • Frontend deploy to GCP Storage / AWS S3 etc.
      • Backend as docker container, Google Cloud Run
cookbook - 0.3.1

Published by ais-one over 4 years ago

  • update packages & cleanup
  • work on improving documentation
  • example-app/web/vite
    • add vite and do sample composition api
  • example-app/web/spa
    • removed Ant Design (look to using web components or something that does not use bundler)
    • fixed run run build
  • example-app/web/pwa
    • add a pwa sample app
    • add Firebase Cloud Messaging (FCM) push notification
  • example-app/public/demo-nobundler
    • add no bundler implementation of Vue SPA using ES Modules
  • common-app
    • add telegram - send to group or channel via bot
    • add FCM push notification
    • improved on error handling (less boilerplate, see example-app/router/api.js)
  • example-app
    • improved router organization, and auth
    • clear httponly cookie on logout
  • vue-crud-x
    • fixed sorting
    • fixed graphql example to include pagination
    • fixed infinite scroll bug
    • fixed code to work with latest vuetify (2.2.15 onwards) and fix infinite scroll double xhr call on filter button press
    • cleanup code
    • update build

Note: See wiki for work in progress and upcoming work / improvements

cookbook - 0.3.0

Published by ais-one over 4 years ago

  • update packages
  • re-architect for better scalability - able to use as base for multiple full-stack applications
  • /backend moved to /, folders are reorganized... refer to README.md Project Structure for more details
  • backend
    • switch app builds based on settings in /package.json config.app property
    • improve error handling using error handler middleware (see /api/error endpoint)
    • clean up auth, add groups to JWT and others, also affects frontend
    • logging using morgan only, no winston, console.log is sufficient (also see https://12factor.net/)
    • add file upload to GCP storage using signed Urls (alternative vendors include AWS S3 or Azure Storage)
    • add Dockerfile see docs/Containers.md & example-app/Dockerfile & example-app/.dockerignore
    • add message queue example using agenda /api/mq (requires MongoDB) & bull /api/mq-bull (requires Redis)
  • frontend /example-app/web folder hosts examples for SPA, SSR
    • update user replace loginType with groups (ADFS SAML claims, etc), improve on permissions handling
    • avoid single vendor lock in - remove mongo switch and firebase
cookbook - 0.2.8

Published by ais-one over 4 years ago

  • update packages
    • remove date-fns (use Native JS Intl.DateTimeFormat and Date objects)
  • VueCrudX
    • fix table height (footer with pagination was hidden)
    • enhance render: cell content formatting of the column (if column name is found, value passed in is cell value, else value passed in is row values object)
  • backend
    • add jest test, create unit and integration test
    • structure backend to be testable, create controllers
    • allow to authorize from cookie or header
  • example-spa
    • fixed axios.js, error.config.url returns only path instead of full url in updated version of axios (affected refresh token)
cookbook - 0.2.6

Published by ais-one almost 5 years ago

cookbook - 0.2.5

Published by ais-one almost 5 years ago

  • update packages
  • backend
    • [Work-in-progress] add jest test
    • example of using RS256 for secret key (sample cert and key are in the certs folder)
    • rename api route /api/rest-test to /api/health, serves as health check, add /api/health-auth to test auth routes
    • add IP address checking (you can IP from req.ip)
    • improved on configuration (use common config.js file), renamed some configs
    • added CORS configurations
    • added proxy middleware (can use this to serve web site from another server instead of serving from express static folder, note CORS needs to be configured properly)
  • frontend and backend
    • improve on JWT, two ways to do expiry extension and revocation
      • correctly implement expiry refresh token
      • httponly session cookies, add proxy middleware to test (app and www must be seen to be from same IP/Domain and Port)
      • Removed nuxt/auth as refresh token support and httponly cookies is not there
    • take care of cors / same-origin
    • refactored example-ssr focus on reducing technical debt, removed nuxt-auth and axios modules, due to limitations, reuse frontend auth code from example-spa
  • frontend
    • [Work-in-progress] ant design version
cookbook - 0.2.4

Published by ais-one about 5 years ago

  • update packages
  • VueCrudX
    • improve layout of table and forms, add to VueCrudX.md documentation
    • fixed issue with load more for infinite scroll (simplified process also)
cookbook - 0.2.3

Published by ais-one about 5 years ago

  • update packages
  • VueCrudX
    • add vcx to onRowClick (so you can reference things in VueCrudX)
    • additional error check if (status === 200 && data) after this.crud.fineOne call
    • add render function in Form Fields configuration to allow record field to be transformed to format used the input
  • example-spa
    • fix major error when using firebase or mongo stitch
    • improve on configs, recaptcha moved to env file
    • fix firebase implemention, should use firebase/app, not @firebase/app
cookbook - v0.2.2

Published by ais-one about 5 years ago

  • update packages
  • add pm2 logging folders
  • VueCrudX.vue
    • bug fix _isHidden & _isReadOnly, use... && !!this.selectedId instead of && this.selectedId
    • make export workable
    • minor fixes on UI, remove unnecessary horizontal scroll in form and filters when displaying more than 1 field in a row, padding adjustments
    • fix input parameters of crud updated() & created() overridable functions. change from record object (parameters passed into crud create() or update()) to data object (parameters returned from crud create() or update()). NOTE created AND create, updated and update...
    • minor fix change this.deleteRecord(...) to deleteRecord(...) in template
  • improve date & time picker components
  • example-spa/src/assets/util.js
    • exportCsv function change from hardcoded output filename to user definable (also to deprecate for improved function)
    • replace exportCsv, exportJson with downloadData (new function, works with IE and can handle larger filesize downloads in chrome)
    • replace makeCsvRow with more robust function from json2csv library
cookbook - v0.2.1

Published by ais-one about 5 years ago

Version 0.2.1

  • update to Vuetify 2.0.1, & other packages
  • fix form layouts
cookbook - v0.2.0

Published by ais-one about 5 years ago

  • update to Vuetify 2.0 (many breaking changes)
  • vue-crud-x Version 0.1.x using Vuetify 1 to be supported in vue-crud-x v1 branch
  • redesign, improve and refactor redesigned to make it easier to implement on other UI frameworks
  • consolidate examples, nuxt-example to focus mainly on nuxt issues only
  • add JSDoc & OpenAPI support
  • add SAML ADFS authentication example in backend example
  • package updates
cookbook - v0.1.13

Published by ais-one over 5 years ago

Version 0.1.13 - Our Last Update Before Vuetify 2.0 update

  • rename example-firebase folder to example-baas
  • add mongo stitch to example-baas
  • nuxt: add error loayout, handle dynamic route error on static pages
  • vue3: https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md
  • improvement: backend, add testing?
  • chore: clean up and improve code when possible, bug fixes
  • chore: package updates
  • chore: monitor VuetifyJS 2 & VueJS 3 updates, start migration from beta release onwards
cookbook - v0.1.12

Published by ais-one over 5 years ago

Version 0.1.12

  • improvement: apollo graphql features (optimistic UI, refetch queries, cache)
  • chore: add formReload flag to VueCrudX (default true), as original REST API always reloads after CRUD. We set it to false (see Categories.vue page), as graphql has optimistic UI, cache and refetch queries available and we make use of them instead for this case.
  • chore: clean up and improve code when possible, bug fixes
  • chore: package updates
  • chore: monitor VuetifyJS 2 & VueJS 3 updates, start migration from beta release onwards
cookbook - v0.1.11

Published by ais-one over 5 years ago

Version 0.1.11

  • improvement: added GraphQL (include subscriptions, auth)
    • changes in backend to accomodate GraphQL
    • changes in example-rest to accomodate GraphQL (categories uses mostly GraphQL now)
  • improvement: use vue-cli instead of poi to build vue-crud-x as npm package
  • chore: clean up and improve code when possible
  • chore: package updates
  • chore: monitor VuetifyJS 2 & VueJS 3 updates, start migration from beta release onwards
  • in pipeline: add test from dredd.io when ready
  • in pipeline: more graphql features if possible (optimistic UI, refetch queries, cache)
cookbook - v0.1.10

Published by ais-one over 5 years ago

Version 0.1.10

  • improvement (NO ACTION NEEDED): improve i18n: you have access to i18n when you use .vue file
  • improvement (DONE): Use lit-element Web Component (for the loading blocker) - see Signin.vue of example-rest for usage
  • improvement (DONE): route level code splitting using import() - see router/index.js of example-rest for usage
  • improvement: (INPROGRESS) add GraphQL
  • improvement: (KIV) add test from dredd.io when ready
  • work in progress: clean up and improve code when possible
  • chore: package updates