3.2 KiB
Executable File
3.2 KiB
Executable File
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