Giter Club home page Giter Club logo

ecamp3's People

Contributors

bacluc avatar carlobeltrame avatar denic0la avatar dependabot[bot] avatar feigenmann avatar florianthomi avatar joelius300 avatar manuelmeister avatar nok-mh avatar pmattmann avatar renovate-bot avatar renovate[bot] avatar simfeld avatar usu avatar

Stargazers

 avatar

Watchers

 avatar  avatar

ecamp3's Issues

API Platform

Pros

  • Symfony-based, seemingly maintained way more actively than Laminas API Tools, backed by a french software development company
  • Specialized primarily on API projects, most common use cases have existing solutions
  • Speaks many different API standards, including HAL, making it easier for other services to use the eCamp API
  • Also doctrine-based, we can keep all our existing entity classes
  • Instead of the relatively confusing and home-made extract / HydrateInfo config, uses another approach by decoupling the HAL protocol specifics from the model / DTO domain
  • Can use DTOs, but don't have to
  • Registration / login logic is pre-implemented
  • Existing, pre-built, standards-conform, tried-and-tested systems for: PATCH operations even with nested properties, validation messages tied to fields, createdAt/updatedAt fields in the DB
  • Different validations for create and patch, as well as validations for nested entities are natively possible and will be automatically documented
  • IRIs (URIs / self links) are used instead of IDs in the API to specify relations
  • Docker Setup and Helm Chart (for Kubernetes deployment) is pre-implemented (of course we still need to adapt this for ecamp)
  • Things like soft-delete, cursor-based pagination and live updates are available as pre-implemented installable /activatable bundles
  • OpenAPI and other API documentation (Hydra) is built in
  • PHP 8 support is built in
  • There are Symfony IDE plugins for PHPStorm and VSCode

Contras

  • Another big refactoring (but with both short-term and long-term benefits)
  • No slow rolling change possible, "big bang" necessary (but better now than after we've gone live)
  • Some hal-json-vuex adaptations needed (item instead of items, sending the Accept header application/hal+json (optional), empty collection relations are omitted in responses by default, embedded collections work a little differently), most of which would make sense going forward anyways
  • There are some open issues about the HAL serializer. But judging by some PRs, we could contribute back fixes for most of these and they would be accepted within a reasonable timeframe.
  • Authorization is preferably based on JWT tokens, not PHP session ids (but we intend to go the OAuth / OIDC way anyways in the future, and session cookies are still possible)
  • I didn't find a built-in way to do Input Filters (StringTrim, StripTags), only this issue: api-platform/api-platform#232. But I implemented a system (based on PHP 8 attributes, to make it similar in use to validations) using a custom Denormalizer, which is mentioned in the API platform documentation as the solution to "post-process objects created from the payload sent in the HTTP request body"
  • No support for templated links (?) https://symfony-devs.slack.com/archives/C39FKU9AL/p1617006666306200
  • I haven't looked into sending Mails, but should be easily possible since some of the best PHP mail packages come from Symfony
  • Print jobs infrastructure realization yet unclear (but they have documentation for adding side effects to endpoints such as sending messages to a queue, and currently we're trying to live without print jobs anyway)
  • On the community Slack channel, not all feedback is positive (especially some comments about simple use cases being simple, but custom logic being harder to implement). But neither is the feedback on the Laminas API Tools Slack channel...
  • We don't have any experience with API platform yet. But it is very well documented, and there are a lot more code examples online than for Laminas.

To consider

  • The current version is 2.6. Later this year, API platform 3.0 will be released, but it will be the same as 2.7, without backward-compatibility layer. So if we start using 2.6+ now and don't use deprecated stuff, the upgrade to 3.0 should be very easy.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • chore(deps): update dependency sass to v1.58.3
  • chore(deps): update dependency vue to v3
  • ๐Ÿ” Create all pending approval PRs at once ๐Ÿ”

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • fix(deps): update dependency puppeteer-core to v19.7.3
  • chore(deps): update cypress/included docker tag to v12.7.0
  • chore(deps): update dependency eslint-config-prettier to v8.7.0
  • chore(deps): update dependency php to v8.2.3
  • chore(deps): update jest monorepo to v29.5.0 (babel-jest, jest)
  • fix(deps): update sentry-javascript monorepo to v7.41.0 (@sentry/browser, @sentry/vue)
  • chore(deps): update dependency @testing-library/vue to v6
  • chore(deps): update dependency @vue/test-utils to v2
  • chore(deps): update dependency @vue/vue2-jest to v29
  • chore(deps): update dependency node to v19
  • chore(deps): update dependency phpunit/phpunit to v10
  • chore(deps): update js-linter (major) (stylelint, stylelint-config-standard)
  • fix(deps): update dependency nuxt to v3
  • fix(deps): update dependency vee-validate to v4
  • fix(deps): update dependency vue-i18n to v9
  • fix(deps): update dependency vue-recaptcha-v3 to v2
  • fix(deps): update dependency vue-router to v4
  • fix(deps): update dependency vuetify to v3
  • fix(deps): update dependency vuex to v4
  • chore(deps): lock file maintenance
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Pending Branch Automerge

These updates await pending status checks before automerging. Click on a checkbox to abort the branch automerge, and create a PR instead.

  • chore(deps): update dependency phpstan/phpstan to v1.10.4
  • chore(deps): update dependency rector/rector to v0.15.21

Detected dependencies

composer
api/composer.json
  • php >=8.1.0
  • api-platform/core 3.1.3
  • composer/package-versions-deprecated 1.11.99
  • cweagans/composer-patches 1.7.3
  • doctrine/doctrine-bundle 2.8.3
  • doctrine/doctrine-migrations-bundle 3.2.2
  • doctrine/orm 2.14.1
  • exercise/htmlpurifier-bundle 4.1.1
  • google/recaptcha 1.3.0
  • guzzlehttp/guzzle 7.5.0
  • knpuniversity/oauth2-client-bundle 2.13.1
  • league/oauth2-google 4.0.0
  • lexik/jwt-authentication-bundle 2.18.1
  • nelmio/cors-bundle 2.3.1
  • phpdocumentor/reflection-docblock 5.3.0
  • phpmyadmin/sql-parser 5.7.0
  • ramsey/uuid 4.7.3
  • rize/uri-template 0.3.5
  • sentry/sentry-symfony 4.6.0
  • stof/doctrine-extensions-bundle 1.7.1
  • swaggest/json-schema 0.12.41
  • symfony/asset 6.2.7
  • symfony/console 6.2.7
  • symfony/dotenv 6.2.7
  • symfony/expression-language 6.2.7
  • symfony/flex 2.2.5
  • symfony/framework-bundle 6.2.7
  • symfony/intl 6.2.7
  • symfony/mailer 6.2.7
  • symfony/mercure-bundle 0.3.5
  • symfony/monolog-bundle 3.8.0
  • symfony/property-access 6.2.7
  • symfony/property-info 6.2.7
  • symfony/runtime 6.2.7
  • symfony/security-bundle 6.2.7
  • symfony/serializer 6.2.7
  • symfony/translation 6.2.7
  • symfony/twig-bundle 6.2.7
  • symfony/validator 6.2.7
  • symfony/yaml 6.2.7
  • twig/cssinliner-extra ^3.4
  • twig/extra-bundle ^3.4
  • webonyx/graphql-php 15.2.1
  • friendsofphp/php-cs-fixer 3.14.4
  • hautelook/alice-bundle 2.11.0
  • justinrainbow/json-schema 5.2.12
  • php-coveralls/php-coveralls 2.5.3
  • phpstan/phpstan 1.10.3
  • phpunit/phpunit 9.6.4
  • rector/rector 0.15.20
  • symfony/browser-kit 6.2.7
  • symfony/css-selector 6.2.7
  • symfony/debug-bundle 6.2.7
  • symfony/http-client 6.2.7
  • symfony/maker-bundle 1.48.0
  • symfony/phpunit-bridge 6.2.7
  • symfony/stopwatch 6.2.7
  • symfony/var-dumper 6.2.7
  • symfony/web-profiler-bundle 6.2.7
  • vimeo/psalm 5.7.7
docker-compose
docker-compose.yml
  • node 18.14.2
  • node 18.14.2
  • postgres 15-alpine
  • browserless/chrome 1.57.0-puppeteer-19.2.2
  • cypress/included 12.0.0
  • node 18.14.2
dockerfile
.docker-hub/frontend/Dockerfile
.docker-hub/print/Dockerfile
  • node 18.14.2
  • node 18.14.2
api/Dockerfile
  • php 8.1.13-fpm-alpine3.16
  • composer 2.5
  • caddy 2.6.4-builder-alpine
  • caddy 2.6.4
github-actions
.github/workflows/check-dependencies.yml
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
.github/workflows/continuous-deployment.yml
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • bobheadxi/deployments v1.4.0
  • thollander/actions-comment-pull-request v2
  • Tiryoh/gha-jobid-action v0.1.2
  • bobheadxi/deployments v1.4.0
  • thollander/actions-comment-pull-request v2
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • docker/setup-buildx-action v2
  • docker/login-action v2
  • docker/build-push-action v4
  • docker/build-push-action v4
  • docker/build-push-action v4
  • docker/build-push-action v4
  • bobheadxi/deployments v1.4.0
  • thollander/actions-comment-pull-request v2
  • thollander/actions-comment-pull-request v2
.github/workflows/continuous-integration.yml
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • actions/setup-node v3
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • actions/setup-node v3
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • shivammathur/setup-php v2
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • actions/setup-node v3
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • actions/setup-node v3
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • docker/setup-buildx-action v2
  • docker/build-push-action v4
  • docker/build-push-action v4
  • actions/cache v3@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0
  • cypress-io/github-action v5
  • peter-evans/repository-dispatch v2@26b39ed245ab8f31526069329e112ab2fb224588
  • postgres 15-alpine
  • postgres 15-alpine
.github/workflows/deployment.yml
  • actions/github-script v6
  • actions/github-script v6
  • actions/checkout v3@ac593985615ec2ede58e132d2e21d2b1cbd6127c
  • bobheadxi/deployments v1.4.0
  • docker/setup-buildx-action v2
  • docker/login-action v2
  • docker/build-push-action v4
  • docker/build-push-action v4
  • docker/build-push-action v4
  • docker/build-push-action v4
  • bobheadxi/deployments v1.4.0
.github/workflows/fast-forward.yml
  • actions-cool/check-user-permission v2
  • thollander/actions-comment-pull-request v2
  • actions/github-script v6
  • thollander/actions-comment-pull-request v2
  • actions/checkout v3
  • endre-spotlab/fast-forward-js-action 2.1
.github/workflows/pull-request-rules.yml
  • mheap/github-action-required-labels v3@179af849240d834567e1a3d6dc781575eede757c
helm-values
.helm/ecamp3/values.yaml
  • docker.io/browserless/chrome 1.57.0-puppeteer-19.2.2
npm
e2e/package.json
  • cypress 12.7.0
  • prettier 2.8.4
frontend/package.json
  • @intlify/core 9.2.2
  • @mdi/font 7.1.96
  • @react-pdf/renderer 3.1.6
  • @sentry/browser 7.40.0
  • @sentry/vue 7.40.0
  • @tiptap/extension-bold 2.0.0-beta.220
  • @tiptap/extension-bubble-menu 2.0.0-beta.220
  • @tiptap/extension-bullet-list 2.0.0-beta.220
  • @tiptap/extension-document 2.0.0-beta.220
  • @tiptap/extension-hard-break 2.0.0-beta.220
  • @tiptap/extension-heading 2.0.0-beta.220
  • @tiptap/extension-history 2.0.0-beta.220
  • @tiptap/extension-italic 2.0.0-beta.220
  • @tiptap/extension-list-item 2.0.0-beta.220
  • @tiptap/extension-ordered-list 2.0.0-beta.220
  • @tiptap/extension-paragraph 2.0.0-beta.220
  • @tiptap/extension-placeholder 2.0.0-beta.220
  • @tiptap/extension-strike 2.0.0-beta.220
  • @tiptap/extension-text 2.0.0-beta.220
  • @tiptap/extension-underline 2.0.0-beta.220
  • @tiptap/vue-2 2.0.0-beta.220
  • @zxcvbn-ts/core 2.2.1
  • @zxcvbn-ts/language-common 2.0.1
  • @zxcvbn-ts/language-de 2.1.0
  • @zxcvbn-ts/language-en 2.1.0
  • @zxcvbn-ts/language-fr 2.2.0
  • @zxcvbn-ts/language-it 2.1.0
  • assert 2.0.0
  • axios 1.3.4
  • colorjs.io 0.4.3
  • comlink 4.4.1
  • dayjs 1.11.7
  • deepmerge 4.3.0
  • file-saver 2.0.5
  • hal-json-vuex 2.0.0-alpha.16
  • html-to-react 1.5.0
  • inter-ui 3.19.3
  • js-cookie 3.0.1
  • lodash 4.17.21
  • raf 3.4.1
  • react 18.2.0
  • runes 0.4.3
  • slugify 1.6.5
  • url-template 3.1.0
  • util 0.12.5
  • uuid 9.0.0
  • vee-validate 3.4.15
  • vue 2.7.14
  • vue-axios 3.5.2
  • vue-i18n 8.28.2
  • vue-recaptcha-v3 1.9.0
  • vue-router 3.6.5
  • vue-toastification 1.7.14
  • vuedraggable 2.24.3
  • vuetify 2.6.14
  • vuex 3.6.2
  • xlsx 0.18.5
  • @babel/eslint-parser 7.19.1
  • @testing-library/jest-dom 5.16.5
  • @testing-library/user-event 14.4.3
  • @testing-library/vue 5.8.3
  • @vitejs/plugin-vue2 2.2.0
  • @vue/cli-plugin-babel 5.0.8
  • @vue/cli-plugin-eslint 5.0.8
  • @vue/cli-plugin-unit-jest 5.0.8
  • @vue/cli-service 5.0.8
  • @vue/eslint-config-prettier 7.1.0
  • @vue/test-utils 1.3.4
  • @vue/vue2-jest 27.0.0
  • babel-plugin-require-context-hook 1.0.0
  • coveralls 3.1.1
  • eslint 8.35.0
  • eslint-config-prettier 8.6.0
  • eslint-plugin-import 2.27.5
  • eslint-plugin-local-rules ^1.3.2
  • eslint-plugin-node 11.1.0
  • eslint-plugin-prettier 4.2.1
  • eslint-plugin-promise 6.1.1
  • eslint-plugin-vue 9.9.0
  • flush-promises 1.0.2
  • jest-canvas-mock 2.4.0
  • jest-serializer-vue-tjw 3.19.0
  • lint-staged 13.1.2
  • prettier 2.8.4
  • sass 1.32.13
  • unplugin-vue-components 0.24.0
  • vite 4.1.4
  • vite-plugin-comlink 3.0.5
  • vite-plugin-vue2-svg 0.4.0
  • vue-cli-plugin-vuetify 2.5.8
  • vue-template-compiler 2.7.14
print/package.json
  • @mdi/js 7.1.96
  • @nuxtjs/axios 5.13.6
  • @nuxtjs/i18n 7.3.1
  • @nuxtjs/sentry 7.1.2
  • colorjs.io 0.4.3
  • cookie-parser 1.4.6
  • cors 2.8.5
  • cssesc 3.0.0
  • dayjs 1.11.7
  • deepmerge 4.3.0
  • express 4.18.2
  • hal-json-vuex 2.0.0-alpha.16
  • isomorphic-dompurify 1.0.0
  • lodash 4.17.21
  • nuxt 2.16.2
  • puppeteer-core 19.7.2
  • runes 0.4.3
  • @babel/eslint-parser 7.19.1
  • @babel/preset-env 7.20.2
  • @nuxtjs/eslint-config 12.0.0
  • @nuxtjs/eslint-module 3.1.0
  • @nuxtjs/stylelint-module 4.1.0
  • @nuxtjs/vuetify 1.12.3
  • @tailwindcss/typography 0.5.9
  • @vue/test-utils 1.3.4
  • autoprefixer 10.4.13
  • babel-core 7.0.0-bridge.0
  • babel-jest 29.4.3
  • eslint 8.35.0
  • eslint-config-prettier 8.6.0
  • eslint-plugin-local-rules ^1.3.2
  • eslint-plugin-nuxt 4.0.0
  • eslint-plugin-prettier 4.2.1
  • eslint-plugin-vue 9.9.0
  • jest 29.4.3
  • postcss 8.4.21
  • prettier 2.8.4
  • stylelint 14.16.1
  • stylelint-config-prettier 9.0.5
  • stylelint-config-standard 29.0.0
  • tailwindcss 3.2.7
  • vue 2.7.14
  • vue-jest 3.0.7
  • vue-server-renderer 2.7.14
  • vue-template-compiler 2.7.14
translation/package.json
  • deepl-node 1.8.0
nvm
.nvmrc
  • node 18.14.2
regex
api/phpunit.xml.dist
  • phpunit/phpunit 9.6.4
api/Dockerfile
  • php 8.1.13
  • caddy 2.6.4
  • xdebug/xdebug 3.2.0
  • github.com/dunglas/mercure/caddy v0.14.5
  • github.com/dunglas/vulcain/caddy v0.4.3
.helm/ecamp3/values.yaml
  • browserless/chrome 1.57.0-puppeteer-19.2.2
.github/workflows/check-dependencies.yml
  • php 8.1.13
.github/workflows/continuous-integration.yml
  • php 8.1.13
  • php 8.1.13
  • php 8.1.13
  • php 8.1.13
  • php 8.1.13
  • php 8.1.13
renovate.json
  • php 8.1.13
.github/workflows/check-dependencies.yml
  • composer 2.5.0
.github/workflows/continuous-integration.yml
  • composer 2.5.0
  • composer 2.5.0
  • composer 2.5.0
  • composer 2.5.0
  • composer 2.5.0
  • composer 2.5.0
.github/workflows/continuous-integration.yml
  • node 18.14.2
  • node 18.14.2
  • node 18.14.2
  • node 18.14.2
.nvmrc
  • node 18.14.2
renovate.json
  • node 18.14.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.