Giter Site home page Giter Site logo

codefornl / buurtpreventie Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zabuto/buurtpreventie

1.0 3.0 0.0 1.63 MB

Leden van de actieve buurtpreventie kunnen het lopen door de buurt inroosteren.

ApacheConf 0.97% PHP 62.43% HTML 30.75% CSS 2.01% Shell 0.64% JavaScript 3.20%

buurtpreventie's Introduction

Actieve Buurtpreventie

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.

Systeemeisen

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

Installatie via Github en Composer

Deze applicatie is publiekelijk beschikbaar via GitHub. Installeren van benodigde packages gebeurt via de dependency manager Composer.

https://github.com/zabuto/buurtpreventie.git

Initialisatie

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.

Configuratie

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.

Connectie instellingen

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

Email instellingen

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

Overige instellingen

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

Databasestructuur

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

Cache en log mappen

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.

Eerste aanroep en aammaken cache

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.

Validatie gebruik Gmail account

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.

Eigen layout thema

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.

Productieomgeving

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

Ontwikkelomgeving

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].

Email notificatie via cronjob

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.

Handige console opdrachten

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

buurtpreventie's People

Contributors

basbiezemans avatar milovanderlinden avatar zabuto avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.