Skip to content
Florian Grässle edited this page Sep 2, 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

  • Ronny Bölter
  • 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 clean and make install again.

Why does 'npm' freeze 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.

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 mess up all Symfony defaults?

Please read the complete explaination in our wiki.

How do i deploy DataWiz?

Like any other Symfony Application. There is no special configuration needed for deployment. You should consider a softlink of all configuration files from .tools to prevent error while you run webpack or unit-tests.

How do i update the DataWiz Dev-Server as an active contributor?

The development server runs like a local instance on your machine. So the webserver is part of the Symfony CLI, but without https. This is done by a local proxy from the zpid IT-services. For this reason you can't log in to the server using the domain name. You would try to login to the proxy. To update the running instance you just cd into the working directory of the DataWiz Repository, then you type git pull and then make run.

How do i debug the Dev-Server?

Like you would debug your local instance. But this statement alone is not very helpful. Consider the following checklist:

  • Check the commit hash and for merge conflicts
  • Check the system dependencies for changes
  • Check the applications runs properly on your machine
  • Run make clean and make run
  • Check if all commands executed by make exit with 0
    • Check your proper node_modules
    • Check your proper vendors
    • Check your proper public/build for assets
  • If you introduce a new external dependency like a database or a cache, you should check the connection to this dependency
  • If you did all the above steps and still can't make it work, consider to reset to the last working commit and introduce each change you make a tiny as possible to isolate any issue that appears
  • If this still not solves the problem, i am out of ideas and you should ask an operator about your specific problem

How did you make the Symfony CLI work with the proxy?

The port 443 is redirected to 8000 (default of the Symfony CLI) with an internal command. Shamefully i didn't documented my work here.

Webpack watchers don't work on the Dev-Server?

Right. Only the Symfony CLI Webserver runs in the background.

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 heard about SOLID or functional programming? Your 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