LocalWeb Collections
Een PHP MVC applicatie voor het beheren van collecties van onderdelen, gebouwd met Composer, Twig, en FastRoute. Draait in een LXC container.
Features
- Onderdelen Beheer: Voeg, bewerk, verwijder en filter onderdelen.
- Categorieën: Organiseer onderdelen in hiërarchische categorieën.
- Zoeken en Filteren: Zoek op naam en filter op categorie.
- Afbeeldingen: Upload afbeeldingen voor onderdelen.
- Locatie: Sla locatie informatie op voor onderdelen.
- QR Codes: Automatisch gegenereerde QR codes voor elk onderdeel, met printbare stickers.
- Meertalig: Ondersteuning voor Nederlands en Engels.
- Real-time Updates: Boom navigatie wordt automatisch bijgewerkt na CRUD operaties.
Installatie
- Zorg voor een LXC container 'www' met Apache, PHP, en Composer.
- Clone de repository naar
/var/www/localhostin de container. - Run
composer installin de container. - Stel de database in:
collections.sqlitewordt automatisch aangemaakt. - Configureer Apache om als
ubuntugebruiker te draaien (zie Apache Configuratie). - Start Apache en ga naar http://localhost.
Apache Configuratie
De applicatie draait met Apache als ubuntu gebruiker voor development:
# Apache gebruiker instellen
sudo nano /etc/apache2/envvars # Wijzig APACHE_RUN_USER=ubuntu
sudo nano /etc/apache2/apache2.conf # Wijzig User/Group naar ubuntu
sudo systemctl restart apache2
# Permissions instellen
sudo chown -R ubuntu:ubuntu /var/www/localhost
sudo chmod 755 /var/www/localhost/public/js/
sudo chmod 644 /var/www/localhost/public/js/*
Gebruik
- Overzicht: Bekijk alle onderdelen met filters.
- Onderdelen Toevoegen: Gebruik het formulier om nieuwe onderdelen toe te voegen met afbeelding en locatie.
- Bewerken: Klik op 'Edit' om onderdelen te wijzigen.
- Verwijderen: Klik op 'Delete' om onderdelen te verwijderen.
- QR Printen: Klik op 'Print QR' om een sticker te printen.
- Categorieën: Beheer categorieën via de zijbalk.
Project Structuur
├── src/
│ ├── Controllers/ # MVC Controllers
│ ├── Models/ # Data Models
│ └── Services/ # Business Logic
├── templates/ # Twig templates
├── public/
│ ├── js/ # Frontend JavaScript
│ └── uploads/ # Afbeeldingen en QR codes
├── lang/ # Vertalingen (NL/EN)
└── collections.sqlite # SQLite database
Ontwikkeling
- Dependencies:
composer install/update - Linting: Volg PSR-12 handmatig
- Testing:
curl localhostofphp test.phpvoor individuele tests - Database: Gebruik
App\Database\Database::getInstance()(geen directe PDO) - I18n:
App\Services\TranslationService(PHP) of{{ trans('ID') }}(Twig) - Commits: Elke wijziging heeft een git commit
Code Conventies
- Architecture: MVC patroon met PSR-4 namespacing
- Naming: Classes
PascalCase, methods/variablescamelCase - Templating: Alleen Twig (
.twigfiles) - Security: Geen secrets/keys in code of logs
- Types: Type hints waar mogelijk
- Comments: Vermijd tenzij gevraagd
Licentie
MIT
Description
Languages
PHP
47.3%
Twig
22.7%
JavaScript
18.8%
Mustache
10.3%
CSS
0.9%