Setting things up
You must have completed the installation setup before doing this.
Now go and visit localhost:18080 in your browser. You should see a foodsharing instance running on your local machine :)
For generating a bit of initial data to play with, execute the seeding script:
./scripts/seed
It will give you some users that you can log in with:
Password | Role | |
---|---|---|
user1@example.com | user | Foodsharer |
user2@example.com | user | Foodsaver |
storemanager1@example.com | user | Store manager |
storemanager2@example.com | user | Store manager |
userbot@example.com | user | Ambassador |
userbot2@example.com | user | Ambassador |
userbotreg2@example.com | user | Ambassador |
userorga@example.com | user | Orgateam |
Users with workgroup functionality in the region
Password | workgroup function | |
---|---|---|
userwelcome1@example.com | user | Welcome |
userwelcome2@example.com | user | Welcome |
userwelcome3@example.com | user | Welcome |
userwelcome4@example.com | user | Welcome |
uservoting1@example.com | user | Voting |
uservoting2@example.com | user | Voting |
uservoting3@example.com | user | Voting |
uservoting4@example.com | user | Voting |
userfsp1@example.com | user | foodshare point |
userfsp2@example.com | user | foodshare point |
userstorecoordination1@example.com | user | Store coordination |
userstorecoordination2@example.com | user | Store coordination |
userstorecoordination3@example.com | user | Store coordination |
userreport1@example.com | user | Report |
userreport2@example.com | user | Report |
userreport3@example.com | user | Report |
usermediation1@example.com | user | Mediation |
usermediation2@example.com | user | Mediation |
usermediation3@example.com | user | Mediation |
userarbitration1@example.com | user | Arbitration |
userarbitration2@example.com | user | Arbitration |
userarbitration3@example.com | user | Arbitration |
userarbitration4@example.com | user | Arbitration |
userfsmanagement1@example.com | user | FSManagement |
userfsmanagement2@example.com | user | FSManagement |
userfsmanagement3@example.com | user | FSManagement |
userpr1@example.com | user | PR |
userpr2@example.com | user | PR |
userpr3@example.com | user | PR |
userpr4@example.com | user | PR |
userpr5@example.com | user | PR |
usermoderation1@example.com | user | Moderation |
usermoderation2@example.com | user | Moderation |
usermoderation3@example.com | user | Moderation |
usermoderation4@example.com | user | Moderation |
Some users have additional permissions by being admins of global working groups:
Password | workgroup function | |
---|---|---|
storemanager2@example.com | user | Support |
Please refer to the User Roles and Permissions section for details on the different roles.
Tip: You can use private browser windows to log in with multiple users at the same time!
The script also generates more dummy users and dummy data to fill the page with life (a bit at least).
Should you want to modify it, have a look at the file /src/Dev/SeedCommand.php
.
Whenever you make changes to non-PHP frontend files (e.g. .vue, .js or .scss files), those are directly reflected in the running docker instance. Changes to PHP files will require a page reload in your browser.
To stop everything again, just run:
./scripts/stop
PHPMyAdmin is also included: localhost:18081. Log in with:
Field | Value |
---|---|
Server | db |
Username | root |
Password | root |
There you can directly look at and manipulate the data in the database which can be necessary or very useful for manual testing and troubleshooting.
MailDev is also included: localhost:18084. There you can read all e-mails that you write via the front end.
php Code style
We use php-cs-fixer to format the code style. The aim is to make it use the same style as phpstorm does by default. The fixer is based on the @Symfony ruleset, with a few changes.
To format all files, you can run:
vendor/bin/php-cs-fixer fix --show-progress=estimating --verbose
For convenience, you can and should add the code style fix as a pre-commit hook. So you will never commit/push any PHP code that does not follow the code style rules.
There are two possibilities:
- Using local PHP
- Using Docker PHP
- Using your IDE:
Using local PHP
When PHP >= 7.0 is installed locally and the vendor folder is in place (by having used the automated tests or the dev environment), you can use your computers PHP to check/fix the codestyle, as this is the fastest option:
./scripts/fix-codestyle-local
Adding this to .git/hooks/pre-commit
could look like that:
#!/bin/sh
HASH_BEFORE=$(git diff | sha1sum)
./scripts/fix-codestyle-local
# or use
# vendor/bin/php-cs-fixer fix --show-progress=estimating --verbose
# or
# ./scripts/fix
# if the -local script throws an error
HASH_AFTER=$(git diff | sha1sum)
if test "$HASH_AFTER" != "$HASH_BEFORE" ; then
echo "PHP Codestyle was fixed. Please read the changes and retry commit."
exit 1;
fi
Using docker PHP
Executing the following script will use the dev environment to run the codestyle check. As it currently always runs a new container using docker-compose, it will take some seconds to execute:
./scripts/fix
Using PHPstorm
If you happen to use PHPstorm you can add php-cs-fixer
to those settings as well:


Using VSCode
You can use the php cs fixer Extension. It should work right after a restart. To fix a file right click on it and select

You can even configure it to fix your code style after saving a file under: Settings>PHP CS Fixer>Execute PHP CS Fixer on save for not commiting any non-fixed code.
Note: You need PHP installed locally for this.
Editorconfig
Depending on your editor you need to do nothing or install or configure a plugin to use the file .editorconfig
. Please refer to the section about Code style.