- PHP 60.1%
- Twig 19.3%
- CSS 14.2%
- JavaScript 6.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| assets | ||
| bin | ||
| config | ||
| migrations | ||
| public | ||
| src | ||
| templates | ||
| tests | ||
| translations | ||
| .editorconfig | ||
| .env | ||
| .env.local.example | ||
| .gitignore | ||
| compose.override.yaml | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| importmap.php | ||
| LICENSE | ||
| phpunit.dist.xml | ||
| README.md | ||
| symfony.lock | ||
Het Nieuwe² Werken (HNNW)
Het Nieuwe² Werken (HNNW) is een crowd-sourcing platform voor de overheid dat vraag en aanbod van werk samenbrengt. Het stelt organisaties en individuen in staat hulpvragen en opdrachten te publiceren, waarop deelnemers kunnen reageren.
Het platform is ontworpen om samenwerking binnen en tussen overheidsorganisaties te stimuleren, met een focus op transparantie, veiligheid en schaalbaarheid.
Table of Contents
Overview
HNNW is the next-generation platform for collaborative work within the Dutch government ecosystem.
The platform enables:
- Publishing projects and work packages
- Matching supply and demand of expertise
- Cross-organisational collaboration
- Community and group formation
- Transparent participation and workflow management
This repository contains the core Symfony application powering the HNNW platform.
Production website: https://hnnw.nl Repository: https://code.hnnw.nl/HNNW/core
Installation
Requirements
Before starting, ensure the following software is already installed:
- PHP 8.5.4+
- Composer
- Symfony CLI
- Git
- PostgreSQL 18 + pgAdmin 4
Note: installation steps for PHP, Composer and Symfony CLI are intentionally not included in this README.
1. Install PostgreSQL 18
Download and install PostgreSQL 18 from the official W3Schools installation guide: https://www.w3schools.com/postgresql/postgresql_install.php
During installation:
- Remember the password you set for the
postgresuser - Ensure pgAdmin 4 is installed alongside PostgreSQL
- Keep the default PostgreSQL port (
5432) unless you specifically need another port
After installation, PostgreSQL should be running automatically.
2. Create the database in pgAdmin
Open pgAdmin 4.
Create a new database
- Expand:
Servers → PostgreSQL 18
- Right-click:
Databases
- Select:
Create → Database...
- Enter a database name, for example:
hnnw_core
- Click:
Save
The database is now ready for use.
3. Clone the repository
git clone https://code.hnnw.nl/HNNW/core.git
cd HNNW-core
4. Install dependencies
composer install
During installation, one of the Symfony UX packages may ask whether Docker-related files should be installed.
Since Docker is not used for this project, simply select:
x
This corresponds to:
No, don't ask again for this project
5. Create environment configuration
Duplicate the example environment file:
cp .env.local.example .env.local
If cp is not available, manually duplicate:
.env.local.example
Rename it to:
.env.local
6. Configure .env.local
Open .env.local and configure the application settings.
Configure APP_SECRET
Generate a secure application secret:
php -r "echo bin2hex(random_bytes(32));"
Place the generated value inside .env.local:
APP_SECRET=your_generated_secret_here
Configure PostgreSQL connection
Inside .env.local, set the DATABASE_URL.
Example configuration:
DATABASE_URL="postgresql://your_username:your_password@127.0.0.1:5432/your_local_database?serverVersion=18&charset=utf8"
Replace:
| Value | Description |
|---|---|
your_username |
PostgreSQL username (mostly postgres) |
your_password |
Your PostgreSQL password |
your_local_database |
Database name created in pgAdmin |
5432 |
PostgreSQL port |
Example:
DATABASE_URL="postgresql://your_username:your_password@127.0.0.1:5432/your_local_database?serverVersion=18&charset=utf8"
7. Run database migrations
The database tables are managed through Doctrine migrations.
Run:
php bin/console doctrine:migrations:migrate
When prompted, type:
yes
This will create all required database tables and schema structures.
8. Start the application
symfony server:start
The application should now be available at:
http://127.0.0.1:8000
# and/or
http://localhost:8000
Technical Information
| Category | Information |
|---|---|
| Framework | Symfony |
| Backend Language | PHP |
| Frontend Languages | HTML, CSS, JavaScript |
| Templating | Twig |
| Database | PostgreSQL 18 |
| ORM | Doctrine ORM |
| Database Migrations | Doctrine Migrations |
| UX Packages | Symfony UX (excluding deprecated, Vue.js and React packages) |
| APIs | None currently |
| Codebase Language | en-AU |
| Application Language | nl-NL |
Troubleshooting
Composer install fails
Try clearing cache:
composer clear-cache
composer install
Database connection errors
Verify:
- PostgreSQL is running
- The database exists in pgAdmin
- Username and password are correct
DATABASE_URLinside.env.localis correct
You can test PostgreSQL connectivity using:
php bin/console dbal:run-sql "SELECT 1"
Migration problems
If migrations fail, ensure the database exists and retry:
php bin/console doctrine:migrations:migrate
To check migration status:
php bin/console doctrine:migrations:status
APP_SECRET missing
Make sure .env.local exists and contains:
APP_SECRET=your_generated_secret_here
Symfony cache problems
Clear cache:
php bin/console cache:clear
Port already in use
If port 8000 is already occupied:
symfony server:start --port=8001
License
This project is licensed under the European Union Public License (EUPL) unless stated otherwise.
Please refer to the official license text:
Repository organisation: https://code.hnnw.nl/HNNW
Project Team
Project Leadership
- Project Leader
- Multiple Stakeholders
Product Ownership & Development Leadership
- Riley de Man — Product Owner, Lead Developer & Senior Developer
Development Team
A team of approximately 25 developers from Techniek College Rotterdam (MBO) contributes to this project.
This team primarily consists of:
- Junior Developers
- Several Medior Developers
Copyright
© Het Nieuwe² Werken (HNNW)
All rights reserved where not superseded by the EUPL.
Project developed for and in collaboration with the Dutch government ecosystem.