Core web application of youth building KA-Huis in Posterholt, The Netherlands.
This repository contains the core web application of the KA-Huis. A youth building located in Posterholt, The Netherlands fully run by volunteers. This application serves as an internal tool to improve processes and realtime availability of information. It's build in PHP with the popular Laravel framework. This application is responsible for multiple services. It contains at this moment the web application interface and a generic purpose REST API (used for example by the mobile application Repair Tool). Both reuse the same core and domain logic.
This project contains a preconfigured Docker setup to easily get this project locally running. Although it's heavily advised to use this Docker setup, because it matches production as much as possible it's not required. We do however not accept code changes to support other setups.
php
: Core applicationnginx
: NGINX servermariadb
: MySQL database- Database:
sm
- Root password:
root
- Username:
sm
- User password:
sm
- Exposed port:
34030
- Database:
redis
: Cache data storemailhog
: Local e-mail testing tool to catch sent e-mails- URL:
https://mailhog.space-management.localhost
- URL:
In order to easily redirect local requests to the localhost domain of this project, we use Traefik a reverse proxy. Make sure it's running. Follow the installation steps at KA-Huis/traefik-gateway.
All the installation steps are added to the ./setup.sh
script to automate the process. This makes sure every necessary step is executed in the right order. Shell scripts can be run on macOS and Linux. In case you're using windows, you could use WSL (Windows Subsystem for Linux).
Run the ./setup.sh
script every time you want to have a fresh setup of this project.
After the initial setup has been run once, the next time you want start the service you can run docker-compose up -d
.
In order to run commands, you will have to SSH into the php
service container:
docker-compose exec php sh
After that you can for example run Laravel artisan commands (php artisan list
).
A small list of user accounts are already automatically created by the database seeder which you can use to easily get access to the admin portal.
First Name | Last Name | E-mailaddress | Password | Role |
---|---|---|---|---|
Cyril | de Wit | [email protected] | Welkom0! | To be created |
Jasper | Stolwijk | [email protected] | Welkom0! | To be created |
Mitch | Kessels | [email protected] | Welkom0! | To be created |
Enno | Overbeeken | [email protected] | Welkom0! | To be created |
- Branch
production
: This branch will be used to build an artefact that can be deployed to the production environment. - Branch
acceptance
: This branch will be used to build an artefact that can be deployed to the acceptance environment.
The acceptance branch should always be production ready. That means it should not be used to test code on the environment. When the product owner approves a ticket after testing it on the acceptance environment, we will be able to create a release branch and merge it to production.
Branch naming convention when working on tickets:
- feature/: When the ticket is about introducing a new feature. Include a GitHub issue reference when possible.
- bugfix/: When the code change fixes a bug.
- hotfix/: When something is broken on production and should immediately be fixed. This can go straight to the
production
branch.
All work branches branch off from the producion
branch to make branches independent of each other, meaning they will not block each other. Working branches can also branch of from other ticket branches, when they dependent on each other.
- Cyril de Wit - Creator - cyrildewit
- Jasper Stolwijk - Creator - Hoopless
- Mitch Kessels - Creator - MiKessels
- Joey Vonck - Creator - joeyvonck
See also the list of contributors who participated in this project.
Please see CHANGELOG for more information on what has changed recently.
Copyright (c) KA-Huis. All rights reserved.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.