Skip to content
Michael Cremer edited this page Apr 16, 2021 · 23 revisions

Hello and nice to write for you. This wiki is intended to give you more information about the DataWiz codebase. All critical inventions made between january 2020 and december 2021 will be gathered here. The purpose of everything you read here, is to guide your understanding of why the code looks a certain way. It is a more explizit way of retaining the thinking behind everything this repository contains. Scroll down to find our most frequently asked questions. Of course, no documentation is perfect and there will be outdated information here at some point in time. If you find any mistakes, please open an issue.

Authors DataWiz 2

Code

  • Michael Cremer
  • Florian Grässle

Domain knowledge

  • Katarina Blask
  • Michael Bosnjak
  • Erich Weichselgartner

Authors DataWiz 1

Code

  • Ronny Bölter

Domain knowledge

  • Ina Dehnhardt
  • Martin Kerwer
  • Erich Weichselgartner

F.A.Q.

The dependencies of DataWiz are broken?

There is more than one reason for your current working directory state to stop working. Please note, that after some commits your temporary data in var/ becomes incompatible. So even with automated workflows, you might need to run make clear and make install again.

Why does 'npm' freezes when using 'make install'?

If you use npm in version 7.0.1 you end up with a freezed installation. This problem is solved in recent npm versions.

Your 'pnpm' install fails on my machine. How do i fix it?

The makefile expects your pnpminstallation in npm root -g. If you install pnpmupdates using pnpm itself, you will may break how the detection works. This issue is unfortunately not trivial and the recommend fix is using pnpm installed with npm.

I got an audit alert from 'npm audit', what should i do?

Please open an issue or submit a pull request, if you are able to solve the issue. Thank you for keeping our project secure.

Why did you messed up all Symfony defaults?

Please read the complete explaination in our wiki.

Do i need 'ansible' to contribute?

No, you only need ansible if you wanna run our deployment process.

I use Microsoft Windows and don't like 'make'! Can you change your project to support contributors on Windows?

We appreciate every contribution to DataWiz and we wanna provide as much convinience for contributors as possible. Unfortunately we can't implement an operating system agnostic solution. Make is available for Windows and you can always run all tasks manually.

I don't understand your mess of code. Can i change everything?

Everything we commit is work of humans, so of course there are missunderstandings and non-clear sections in our codebase. Before you change sections that seem like bad code, please consider what problem we try to solve and have a look at the wiki for additional documentation.

I am a tech-savy psychologist. How can i help?

Thank you for the consideration. We are happy to integrate your expertise and hear you out. Please contact us via info@leibniz-psychology.org.

My changes end up with an doctrine error?

Please take a closer look to your annotations. Unlike normal php code, most IDE's have problems linting your annotations. Without this little cue, a double @ before your @ORM\Id can cost you a day of work.

Did you ever head about SOLID or functional programming? You code would be much better with it!

Unfornately no. Functional programming provides great benefits, but how you can do it in Php is no match for languages like elm or elixir. You end up mixing your programming styles into oblivion. There are many pattern in a typical DataWiz Controller that could run with less repeatitve code. Checking the form and doing something is perfect for closures. Until you try it! You will end up with code that needs to draw the context in with use, you have a problem managing your '$form' and you will have no real way of redirection. All those points were found mid-development and had their cost for us. Please consider our insights and don't try too much functional constructs in DataWiz.

Tech Stack

Have a look at the docs or some thought provoking articles to get started.

Clone this wiki locally