Giter VIP home page Giter VIP logo

aas2's People

Contributors

blackshadev avatar dependabot[bot] avatar irisvm avatar renovate[bot] avatar robinklaassen avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

blackshadev

aas2's Issues

Unit tests voor kernfunctionaliteit

Nu er automatisch getest wordt middels Travis, lijkt het me zaak om unit tests toe te voegen om de stabiliteit van het systeem te verzekeren. Laten we beginnen met de kernfunctionaliteit. Daaronder versta ik:

  • Registratie leiding
  • Registratie deelnemer
  • Login
  • Leden-, deelnemer- en evenementoverzichten bekijken
  • Op kamp gaan vanuit profiel (leiding)
  • Op kamp gaan vanuit profiel (deelnemer)
  • Mollie betalingen (opgepakt in #27 )
  • Vakdekkingschecker
  • De JSON API's voor de Anderwijs website

Suggesties voor aanvullingen zijn zeker welkom.

AVG: akkoord met privacyverklaring

SInds 25 mei 2018 is de AVG van kracht. Rond die tijd is aan de inschrijvingsformulieren in AAS een vinkje toegevoegd dat je toestemming geeft dat Anderwijs je gegevens behandelt volgens ons privacystatement. Heel formeel moeten gebruikers van AAS die voor die tijd al bestonden, ook nog hun toestemming geven. Bijvoorbeeld met een popup en een knop die ervoor zorgt dat je toestemming wordt geregistreerd in de database (met datum, lijkt me).

Koppel kampen aan trainingen

Meer wat voor AAS3. In AAS2 zijn kampen en trainingen beide "events", en zou je relaties ertussen moeten kunnen opslaan in de databases.

Mailinglijsten voor ervaren trainers (bestaande + oud-leden)

Bij 'Lijsten' hebben we een tabblad 'ervaren trainers' met een tabel. Dit is niet heel makkelijk in het gebruik, dus ik wil hier een makkelijk te kopiëren mailinglijst aan toevoegen. Dit idee heb ik per mail besproken met de trainingscommissie van afgelopen jaar en het bestuur, en besloten om de lijsten ook op te splitsen in huidige leden (aspirant/normaal/info) en oud-leden.

Het idee voor de toekomst is ook om, als iemand aangeeft niet meer benaderd te willen worden voor trainingen, het vinkje 'ervaren trainer' bij deze persoon weg te halen zodat hij/zij niet meer in de mailinglijst staat. Maar dat is iets voor de betreffende commissie of contactpersoon.

Ik zal deze binnenkort zelf oppakken wanneer ik tijd heb :)

Automatische deployment naar productie

Hoe ideaal zou het zijn dat na een merge naar master de code automatisch op onze hosting provider wordt gedeployed? Het is nog even de vraag of we het aan de praat krijgen, gezien we naar shared webhosting deployen en niet naar een VPS, maar ik wil kijken hoe ver we kunnen komen met een scripted deployment via Travis (gezien de source public is, is dit ook nog eens gratis).

Plus, het ingericht hebben van Travis maakt het ook nog eens aanlokkelijker om automatisch testen te introduceren.

Kampbudget berekening met halve dagen

Kampbudget: werken met halve dagen ipv afronden naar heel, OF er een calculator van maken (formulier).
Dit betreft functionaliteit die gebruikt wordt de penningmeester van Anderwijs.

Dashboard leiding

Een dashboard voor leiding. Deze moet relevante info duidelijk en overzichtelijk weergeven.

Ideeën:

  • "Je gaat binnenkort op dit kamp!"
  • Met zoveel deelnemers
  • Kamphuislocatie
  • Info deelnemers (zie deze ticket)
  • DRUIF link (zie deze ticket)

Een gesprek met de kampcommissie of eigenlijk elk Anderwijslid kan nuttig zijn voor meer ideeën.

'Laatst ingelogd' bij users stuk

Users hebben een last_login datetime, deze wordt niet meer geüpdatet. Mijn eigen user heeft last login van 18 mei 2019, dus waarschijnlijk een PR rond die tijd die dit heeft gesloopt.

Mailinglijst oud-leden

We sturen nog wel eens mailings (nieuwsbrieven, oproepen) naar oud-leden. Dit gebeurt op dit moment echter niet vanuit AAS, maar vanuit een aparte lijst die ergens rondslingert bij individuele (oud-)bestuurders. Lijkt me fijn om dit te integreren.

We kunnen een makkelijk te kopiëren email-lijst maken voor oud-leden, net zoals dat bij 'Lijsten' voor andere zaken gebeurt.

En daarna moeten we even kijken hoe we de bestaande lijst combineren met de data in AAS. Zeer waarschijnlijk lopen de adressen van beide uiteen. Hier heb ik op dit moment nog geen duidelijk plan voor.

HSTS aanzetten

Voor veiligheid is het fijn om HSTS aan te zetten op de apache server en ons aan te mensen voor HSTS preloading.

Inline CSS uit blade files

Er staat inline CSS in sommige blade files. Mooier zou zijn om deze eruit te halen en apart te zetten.

Rollensysteem maken

Dit rollensysteem zou verschillende organisatierollen erkennen binnen Anderwijs. Denk aan kampcommissie, kantoorcommissie, bestuur, AASbaas, etc. Deze hebben verschillende soorten rechten, waardoor bepaalde functionaliteit wel/niet beschikbaar wordt.

Beleid

Er moet bepaald worden welke rollen en welke rechten er zijn. Wie ziet welke pagina?

Implementatie

Rollen moeten aangemaakt kunnen worden en gedefinieerd worden.
Note van @robinklaassen: misschien met een plugin?

Leiding ziet online info kampdeelnemers

Huidige situatie

Alleen mensen die horen bij "organisatie" binnen AAS kunnen bij de info van kampdeelnemers. Deze info kan alleen opgehaald worden via een export. De kampcommissie export dus de informatie, en mailen dat door aan de kampleiding.

Ideale wereld

Leiding opent kamppagina. Leiding ziet deelnemerinfo.

Laravel upgrade

AAS2 draait nu op laravel 5.1 , ondertussen is laravel 5.8 al uit en 5.1 wordt al bijna jaar niet meer ondersteund met updates, bug fixes al twee jaar niet meer.

Is er wat voor om alles een voor 1 up te grade naar 5.8, of liever de LTS 5.5 (die overigens dit jaar augustus niet meet ondersteund wordt)

Nieuwe rol: vertrouwenspersoon

The tricky bit: het telefoonnummer van de VP moet zichtbaar zijn voor alle leden (en niet dat de VP andere nummers kan zien). Nog geen idee hoe we dat gaan doen. Over verdere invulling ben ik nog aan het praten met Ingeborg.

Automatische mail na deelnemerplaatsing

De KantoorCie onderhoudt contact met ouders/deelnemers. Nu is een deel van hun proces al geautomatiseerd.

Niet automatisch nu:

  • plaatsing van deelnemers
  • minder nodig: bevestiging van betaling per overschrijven (dus niet via iDeal maar zelf via bankieren)

Er kan natuurlijk ook even om tafel gezeten worden met de KantoorCie als zij meer voor ogen hebben.

Mollie upgrade naar v2

We gebruiken op dit moment v1.2 van de Mollie API om iDeal betalingen te ondersteunen. v2 is inmiddels al een tijdje uit en hoewel we de nieuwe functionaliteit niet direct nodig hebben, lijkt het me goed om te upgraden. Daarbij kan dan gelijk wat gerefactored worden en een of meerdere tests geschreven.

Rollen systeem fixups

Verzamel issue voor alle issues met de huidige rollen. Graag in een formaat waarin duidelijk is wat iemand niet kan en wel zou willen / moeten kunnen, met daarin door wie dit is opgemerkt.

De status kent de volgende waarde:

  • ✔️ Klaar in productie
  • ✅ Staat klaar in repo
  • ❗ Spoed
  • ⏸️ In afwachting
Status Wie Rol Rechten ( + erbij / - te veel) Uitleg (door aasbaas)
✔️ Robin vd L Kamp-CI Deelnemers - Kamp-CI hoeft alleenmaar de deelnemende deelnemers te zien bij de kamp pagina, niet de deelnemers zelf
✔️ Robin vd L Kamp-CI Gebruikers - Hij heeft het nooit gebruikt, waarom hij het uberhaupt kan zien weet ik niet, dat moet ik even onderzoeken. (wellicht voor password resets?). Edit: deze view komt in de toekomst te vervallen, maar dit was zodat je wachtwoorden wijzigen van leden en leden kon verwijderen. Dit heb ik nu bij de leden pagina zelf gezet en dan verwijderen we deze pagina gewoon.
✔️ Robin vd L Kamp-CI Punten - Heeft hij niet nodig, maar is geen ramp.
✔️ Liesbeth, Nathalie Bestuur Leden + Liesbeth heeft vernomen dat het bestuur nu geen adres gegevens van de leden meer kan zien, maar voor bestuurs uitjes / etentjes etc. is dat wat onhandig, daarnaast het is het bestuur, why not.
✔️ Iris Normaal Lid deelnemers - Kunnen deelnemer basis informatie zien en via de index pagina van deelnemers ook prive info , kan nieuwe deelnemers aanmaken
✔️ Iris Normaal Lid locatie - Kan alle info zien van locaties, update: Heb contact gegevens gescheiden van de basis info
✔️ Iris Normaal Lid event - Kan nieuw event invoeren
✔️ Bouchien Promo deelnemers + Ze wil de deelnemende deelnemers zien en die ziet ze nu niet bij kampen. Edit: promoci ziet enkel de niet geplaatste deelnemers, als we onderscheid willen maken in wie wel en niet ongeplaatste deelnemers kan zien moet er een recht bij komen. Edit2: Ik heb een eigen lijst gemaakt met alle nieuwe deelnemer inschrijvingen voor promoci, met informatie zoals hoebij, datum, naam , kamp en of het de eerste kamp is voor de deelnemer
✔️ Fieke Ranonkeltje nieuwe rol Nieuwe rol toevoegen voor de Ranonkeltje commissie, deze moet de lijst 'Ranonkeltje' kunnen zien voor het versturen van de Ranonkeltjes (zowel fysiek als digitaal).

FYI Installatie instructies

Ik had aardig wat issues om het lokaal draaiende te krijgen. Nu ben ik op mijn fork al bezig met wat uitgebreidere installatie instructies, dus dit is meer een FYI. Hier staat hij en als je suggesties heb ze zijn welkom.

Statestiek aantal inschrijvingen dagen voor een kamp

Request ivo & Femke:

bij de statistieken leek het ons handig om te laten zien hoeveel dagen voorafgaand aan een kamp er doorgaans ingeschreven wordt (eventueel per kamp). Hier kan bijv. promo op afgestemd worden

Global search box

Vet idee, lage prio.

Een global search box op iedere pagina (misschien onderdeel van de navbar?), waarmee je kunt zoeken door alle entiteiten (leiding, deelnemers, kampen, locaties).

Ik weet dat dergelijke functionaliteit in Laravel Nova zit maar dat is closed source en dus niet makkelijk te kopiëren, maar misschien kunnen we ons erdoor laten inspireren: https://nova.laravel.com/docs/2.0/search/global-search.html

dompdf niet compatible met php7.4

dompdf is niet compatible met php7.4 . Een gerelateerde issue heb ik hier gevonden:

dompdf/dompdf#2003

Misschien is het een kwestie van later update als de issue is opgelost.

Voor nu hebben we nog geen problemen, want productie gebruikt php 7.2

DataTables voor indexes met variabel aantal kolommen

De overzichtspagina's (van bijvoorbeeld leden, deelnemers, ...) gebruiken de Javascript library DataTables om er een interactieve tabel van te maken. De configuratie hiervan gaat per kolom met een array. Deze array verwijst naar de indices van de kolommen in de HTML.

Echter hebben we onze HTML nu veranderlijk gemaakt door de rollen. Hierdoor werkt de datatable nu bijvoorbeeld wel als ik lokaal ingelogd ben als ranonkeltje, maar niet als ik op mijn eigen live account inlog.

Ik wil deze op zich wel oppakken, maar even overleggen over de beste oplossingsrichting.

Update Carbon package to 2.0

Het php package nesbot/carbon gooit via composer de waarschuwing dat versie 1 nu deprecated is en iedereen naar versie 2 moet. Carbon is een dependency:

$ php composer.phar why nesbot/carbon
khill/lavacharts   3.0.8    requires  nesbot/carbon (~1.14)
laravel/framework  v5.8.18  requires  nesbot/carbon (^1.26.3 || ^2.0)

Het lijkt me goed om carbon expliciet te updaten en te controleren dat de lavacharts dependency (die uit mijn hoofd gebruikt wordt om de resultaten van de enquêtes weer te geven, zie de ReviewsController.php) blijft functioneren (en alle andere zaken natuurlijk ook - hopelijk zijn er geen grote wijzigingen aan de syntax gemaakt).

Meer over Carbon 2 in core Laravel: https://laravel-news.com/carbon-2-laravel

Fixen van adressen op kaart weergeven

Op dit moment gebruikt AAS op twee plekken een interactieve kaart via Google Maps:

  • Kaarten voor adressen van alle leiding en deelnemers (apart)
  • Kaart voor de locatie van iedere 'Locatie'

Deze werken nu niet meer omdat Google zijn werkwijze heeft aangepast en niet meer een open API aanbiedt. Dus hier moet een alternatief voor worden gezocht, bijvoorbeeld https://locationiq.com/.

Dubbele inschrijvingen van deelnemers voorkomen

Het gebeurt helaas nog wel vaak dat een deelnemer zich meerdere keren inschrijft en we dus twee of drie keer dezelfde Participant hebben staan (met allemaal hun eigen user). Is weer gedoe voor de administratie om het op te schonen dus dat willen we natuurlijk graag anders.

Ik heb nog niet helemaal scherp waar dit allemaal mis zou kunnen gaan, maar wat ik in ieder geval wel gezien heb is dat je na inschrijving (en je bent op het bevestigingsscherm gekomen) op de back button van je browser kunt rammen en dat dan je input er nog staat, en dat is niet de bedoeling. Dus dat moet sowieso worden gefixt en daarnaast lijkt een algehele sanity check op de technische inschrijvingsprocedure wel een gezond plan.

Generieke 'opmerkingen' vervangen door timestamped, user-related comments

Leden en deelnemers (en in mindere mate ook evenementen en locaties) hebben nu een 'opmerkingen' veld waarin de organisatie dingen kwijt kan. Omdat hier best wel vaak persoonlijke informatie komt te staan die op een gegeven moment niet meer nodig/relevant is, zou het nuttig zijn om te weten wanneer de opmerking is geplaatst en eventueel ook door wie. Voorstel is om een generiek model 'Comment' toe te voegen om dit te bewerkstelligen.

Kamppagina bevat DRUIF enquête link

Er is een standaardlinkje die een DRUIF (deelnemerenquête) kan aanmaken, waarin het kampnummer staat. Deze kun je niet verkrijgen via AAS, maar dat zou wel zo makkelijk zijn.

Bijvoorbeeld, een DRUIF-knopje bij de kamppagina.

Upgrade naar Laravel 6

Laravel 6 is de nieuwe LTS. Features zijn niet heel spannend maar toch handig om te upgraden vanwege stability.

vriendelijkere wachtwoord resets

Momenteel genereert de wachtwoord reset een willekeurig wachtwoord, maar deze zijn niet bepaald ouder vriendelijk.
Vermijd 0 , o en O. 1 I i, U, u V vanwege duplicaten.
Versimpel het alfabet naar alles wat op een mobiel toetsenbord zichtbaar is: lowercase cijfers en punten

'Nieuw evenement' gooit 404

Gemeld via de mail door Liesbeth. Het pad /events/create gooit een onverwachte 404.

Het lukt mij nog niet om dit te fixen. Met php artisan route:list krijg je een lijst van alle geregistreerde routes en waar ze heen verwijzen en daar staat de betreffende route gewoon netjes bij. Controller method bestaat ook. En php artisan route:clear (om de cache te legen) helpt ook niet.

Nieuwe participants of members aanmaken werkt wel. En die routes worden ook via Route::resource gedefinieerd.

Kortom: moeilijk.

Restyle vakdekkingschecker

Lage prio, meer een idee dat ik had toen ik ernaar keek

  • In plaats van symbolen, kleuren gebruiken voor de status (kleur de tabelregels): groen voor OK, rood voor onvoldoende leiding, geel voor onvoldoende niveau
  • Leiding en deelnemers direct uitschrijven in de tabel, gesorteerd op niveau, in plaats van als een tooltip achter een cijfer.

Courses shown twice in event.show

Reported by Robin vd Leer

Ik wilde het niveau van ...pietje... opzoeken, en toen zag ik het bijgeleverde plaatje. Onder 'niveau' staan de vakken, en onder 'vakken' staan ze ook.

In view: Event show
For role: Kamp-CI
summary:
courses are reported twice, once in "vakken" and once for "vakken"

Kampcommissie inzien persoonlijke evaluaties over leiding

Als leiding van kamp kun je online de evaluaties inzien van dat kamp. Je ziet dan alleen het algemene deel en de persoonlijke evaluatie over jezelf. Als kampcommissie kan je alleen de algemene evaluaties zien van kampen. Je kan niet de persoonlijke evaluaties zien, wat wel handig is.

Dit moet echter pas geïmplementeerd worden als het uitgebreide rollensysteem er is, anders kan iedereen die "organisatie" is deze informatie zien.

Zichtbaar maken rollen

Verzoek/idee van Ingeborg.

In de leden index pagina, een kolom toevoegen met de rollen die ieder lid heeft, behalve de rol 'normaal lid' want die heeft iedereen. Kunnen mensen makkelijker zien wie er bijv. in het bestuur zit.

pakketten online bijles

TODOs

  • Meerdere pakketten met uren en bijles, invulling volgt. Alleen prijs en omschrijving is voor ons van belang
  • Apart type event voor online-bijles over periode
  • Aparte entiteit voor online bijles pakketten: event_sub_products
  • velden: Naam, omschrijving, prijs, type
  • Binding tussen event en bijles pakketten in de participant pivot
  • Inschrijf formulier aanpassen met pakket keuzen voor online bijles,
    • Extra opmerkingen?
  • Bestaande deelnemers inschrijf formulier aanpassen voor online bijles
  • Event show aanpassen voor weergeven extra informatie (paketten)
  • IDeal traject checken, of bijles pakketten wel worden door berekend wordt en wordt gemarkeert als betaald.
  • Event index aanpassen om nieuwe event type weer te geven

Aannames

  • Korting gebaseerd op bestaande discount tabel

Testen

  • Test aanmaken event
  • Test nieuwe inschrijving
  • Test bestaande inschrijving
  • Test iDeal

Optioneel

  • Scherm voor toevoegen online bijles pakketten

Inschrijven voor VW's e.a. activiteiten

Inschrijven voor VW's en andere activiteiten, inclusief export.

  • Leden kunnen zich inschrijven
  • Organisatoren van het VW zien de gegevens in van de participerende leden (net leiding bij kampdeelnemers kunnen)

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.