Met deze applicatie kunnen leden van de actieve buurtpreventie het lopen door de buurt inroosteren. Ook is het mogelijk om achteraf het resultaat en de bijzonderheden te registreren. Daarnaast beschikt het systeem over gebruikersbeheer voor het afschermen van gegevens op de website.
De applicatie is gemaakt met Symfony2. Symfony is een open-source PHP-framework voor het bouwen van dynamische websites.
Voor het draaien gelden de onderstaande randvoorwaarden:
- Webhosting pakket / webserver
- PHP, minimaal versie 5.3.9
- MySQL database met InnoDB storage engine
- Minimaal 100 MB schijfruimte
Deze applicatie is publiekelijk beschikbaar via GitHub. Installeren van benodigde packages gebeurt via de dependency manager Composer.
https://github.com/zabuto/buurtpreventie.git
Via het onderstaande bash script kan het project worden geïnitialiseerd:
./install_prod.sh
Voor het installeren van een ontwikkelomgeving kan het script ./install_dev.sh
worden gebruikt.
Alle configuratie instellingen voor de applicatie zitten in 1 YAML bestand:
/app/config/parameters.yml
Dit bestand wordt tijdens de installatie aangemaakt via het distributiebestand /app/copnfig/parameters.yml.dist
.
De instellingen in dit bestand moeten worden aangepast aan uw eigen situatie.
De benodigde aanpassingen worden hieronder verder toegelicht.
In het bestand /app/config/parameters.yml
staan de settings voor de connectiegegevens.
Pas deze aan naar uw eigen situatie.
database_driver: pdo_mysql (laat deze setting zo staan)
database_host: hostnaam of ipadres (bv localhost)
database_port: poort (standaard poort = null)
database_name: naam van database
database_user: gebruiker met schrijfrechten
database_password: wachtwoord van de gebruiker
De applicatie verstuurt mail naar gebruikers.
Hiervoor is het nodig dat er een Gmail emailaccount is vastgelegd in /app/config/parameters.yml
.
Hieronder ziet u de instellingen voor het gebruik van het Gmail account:
mailer_address: [email protected]
mailer_transport: gmail (laat deze setting zo staan)
mailer_host: null (laat deze setting zo staan)
mailer_user: voorbeeld (zonder @gmail.com)
mailer_password: wachtwoord
In /app/config/parameters.yml
staan ook instellingen voor taal, beveiliging en weergave doeleinden.
Ook zijn er instellingen voor het lopen zelf.
locale: nl taalinstelling (laat deze setting zo staan)
secret: SecretTokenNogAanpassen geheime code voor beveiligingsdoeleinden (pas deze altijd aan)
app_author: 'Buurtvereniging Voorbeeld Eindhoven' naam van uw organisatie
app_title: 'Buurtpreventie Voorbeeld' title van de applicatie
app_description: 'Buurtpreventie in Eindhoven.' aanvullende omschrijving
app_theme: voorbeeld gebruikt thema voor de layout, standaard is null
loopschema_minimum_aantal_lopers: 2 minimum aantal benodigde lopers
loopschema_maanden_vooruit: 3 aantal maanden vooruit plannen
De encoding van de tabellen is UTF-8. De onderstaande tabellen worden aangemaakt:
buurtprev_loopresultaat
buurtprev_loopschema
buurtprev_looptoelichting
zabuto_user
zabuto_usergroup
zabuto_user_usergroup
Er zijn een tweetal mappen waarin de applicatie bestanden wegschrijft:
/app/cache
/app/logs
Op deze mappen zijn dan ook schrijfrechten nodig. De rechten om de mappen kunnen worden goedgezet aan de hand van de Setting up Permissions handleiding op de Symfony website.
De eerste keer dat de applicatie wordt aangeroepen wordt de cache aangemaakt. Hierdoor duurt het wat langer voordat de pagina is ingeladen. Daarna wordt er gebruik gemaakt van de gecachte informatie en zullen de pagina's sneller inladen.
Gebruik van het Gmail account door de applicatie dient gevalideerd te worden.
Om deze actie uit te voeren in het bestand /web/validatie.php
toegevoegd.
Roep dit bestand aan via de webbrowser. Het systeem zal proberen een email te verzenden.
Als validatie nodig is kan de email niet worden verzonden. Log in de browser in op de opgegeven Google Account en ga naar https://accounts.google.com/DisplayUnlockCaptcha om het gebruik goed te keuren.
Laad daarna de validatie.php pagina opnieuw in en probeer de email alsnog te verzenden.
Als de validatie is voltooid kan het bestand /web/validatie.php
worden verwijderd. Dit wordt verder niet meer gebruikt voor andere doeleinden.
Een afwijkende css stylesheet en bijbehorende afbeeldingen kunnen geplaatst worden in de ThemeBundle binnen de applicatie:
/src/Zabuto/Bundle/ThemeBundle/Resources/public
Zorg ervoor dat stylesheet in de map css
staan.
De naam van het bestand dient overeen te komen met de ingevulde waarde in de setting app_theme
in /app/config/parameters.yml
.
Afbeeldingen kunnen geplaatst worden in de images
map.
Na initialisatie voor de omgeving is er één gebruiker beschikbaar. Wijzig hiervan direct het emailadres en wachtwoord. Om de eerste keer in te loggen gelden de onderstaande inloggegevens:
emailadres: [email protected]
wachtwoord: buurtpreventie
Na initialisatie via het bash script is er testdata in de database beschikbaar. Er zijn verschillende gebruikers en loopmomenten aangemaakt.
Voor alle testgebruikers is het wachtwoord test
. De gebruiker met de meeste rechten is gebruiker [email protected]
.
Het is mogelijk om lopers vooraf een herinneringsemail te sturen. Hiervoor is het nodig om een cronjob in te richten.
Het bestand /app/cron.php
moet uitvoerbaar zijn om de cronjob te kunnen draaien.
Het uit te voeren commando heeft één argument: het aantal dagen dat vooruit gekeken moet worden (0 is vandaag, 1 morgen, etc.):
/absoluut-pad-naar-bestand/cron.php zabutobuurtpreventie:reminder 1
Lees hier meer over het inrichten van cronjobs.
Cache verwijderen. Bijvoorbeeld nadat je een route hebt toegevoegd of aangepast.
php app/console cache:clear --env=prod
Assets installeren in de web directory.
php app/console --env=prod assets:install web
Database migratie status bekijken.
php app/console doctrine:migrations:status --show-versions
Database migratie(s) uitvoeren.
php app/console doctrine:migrations:migrate