GithubHelp home page GithubHelp logo

csvalpha / sofia Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 9.53 MB

S.O.F.I.A. - Streepsysteem der C.S.V. Alpha

Home Page: https://streep.csvalpha.nl

License: MIT License

Ruby 52.67% JavaScript 7.71% HTML 29.10% Shell 0.58% Vue 7.26% Dockerfile 0.43% SCSS 2.26%
rails ruby-on-rails turbolinks vuejs2

sofia's People

Contributors

cmitz avatar cpbscholten avatar dependabot-preview[bot] avatar depfu[bot] avatar drumsnchocolate avatar ellen-wittingen avatar github-actions[bot] avatar guidojw avatar imgbot[bot] avatar imgbotapp avatar matthijsy avatar renovate[bot] avatar stevenspoolder avatar tcoenraad avatar wilco375 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

guidojw

sofia's Issues

Tappersplanning in streepsysteem

Het zou handig zijn om tappers van te voren te koppelen aan activiteiten (tappersplanning). Dan kan je tappers namelijk een herinneringsmailtje sturen.

Nutteloze informatie zichtbaar

image
Deze informatie is voor de meeste gebruikers absoluut niet relevant, moet het dan wel weergeven worden?


Edit door Casper - dan staat het ook het in de issue index:

  • "Geüpdate op" mag weg
  • Account bron krijgt wat mij betreft een vertaling naar "C.S.V. Alpha account" oid.

Activiteit rapport

Na een activiteit wil je een aantal dingen weten. Bijvoorbeeld hoeveel geld er in de kas moet zitten en wat de saldo's zijn van de leden. Ik ben benieuwd of er meer dingen zijn die na de activiteit belangrijk zijn om te weten, zodat de SB penningmeester het iets makkelijker heeft.

Zouden @Matthijsy en @MirjamB vanuit het SB hier iets over kunnen zeggen?

Prijzenlijst selecteren dropdown ipv type-ahead

Ik wil eigenlijk voorstellen om bij de activities.new het invoeren van de prijslijst een dropdown met alle opties te maken ipv een type-ahead. Dit aangezien je dan kan zien wat de opties zijn, en er toch nooit meer dan 5 opties gaan zijn.

Make assets get served by Nginx instead of Rails

ivm docker en mounten ging het niet goed, waardoor Rails nu zelf de assets serveert. Nergens voor nodig.

misschien bied dit command uitkomst:

--mount type=bind,source="$(pwd)",target=/usr/share/nginx/html $DOCKERID/app:latest

Activiteit-velden automatisch aanvullen met data vanuit Banana

Misschien is het voor de toekomst wel een leuk idee om een soort 'quick add' voor activiteiten te maken. Dat je een knop hebt die zegt maak nu een activiteit aan die nu bezig is/zo gaat beginnen die dan informatie uit banana haalt en dan bijvoorbeeld de begin/eind tijd en de titel vast goed zet

Saldo van leden overal zichtbaar

image
image

De saldo's van de gebruikers zijn overal meteen te zien in overzichten, naar mijn mening is dit overbodig en ik vind het ook niet netjes om zo met die informatie te strooien. Naar mijn mening is het enige moment waarop je het saldo van een gebruiker kunt zien als je hem geselecteerd hebt in het streepscherm of de profielpagina.

Transactie scherm in de bar

Het zou handig zijn om bestellingen direct te kunnen invoeren als je ze krijgt van een bezoeker. Dus bijvoorbeeld met een touchscreen achter de bar. Dan moet er ergens staan wat de laatste bestelling was zodat je dat ook nooit kan vergeten.

Dit vereist naast software ook hardware dus moet nog wel verder besproken worden, deze issue meer om het er een keer over te hebben

Automatisch focus op gebruiker zoeken in order scherm

Het zou handig zijn als de focus automatisch naar het zoekveld gaat in het streepscherm (als je bijvoorbeeld net een order/mutatie aangemaakt hebt). Zodat je direct weer kan gaan typen en niet eerst op het veld hoeft te klikken

Activiteit aanmaken

TODO

  • Autocomplete prijslijst
  • Handige datum+tijd picker
  • Verplaatsen form naar modal
  • Prijslijst selectie wat handiger (#45)

Inladen gebruikers uit AMBER met Oauth

Zodat we op AMBER gebruikers kunnen strepen en data kunnen bijhouden.

  • users inladen en opslaan zodat ze bestellingen kunnen hebben
  • users ook achteraf nog kunnen koppelen (bij hun eerste login)

Rspec tests

  • Unit tests voor alle modellen en methodes
  • Coverage report voor de modellen
  • [ ] Enkele acceptance tests (om Vue mee te testen)

Avatar-urls van gebruikers opslaan

URl van de avatar thumbnail opslaan zodat we die kunnen tonen in het streepscherm. Een foto kleed de pagina mooi aan maar helpt vooral de tapper met het kiezen van de juiste persoon

Miscshien wat voor jou @cpbscholten ?

Gebruikers wijzigen

In het scherm /user/:id zou ik graag een gebruiker kunnen aanpassen. Aan jou om een leuke manier te verzinnen hoe dat te doen.

Opties zijn bv:

  • Modal met formulier
  • Velden in tabel aanpasbaar zoals bij price_lists
  • Edit pagina (meh ;-))

Leeftijdscontrole - melding bij minderjarige gebruiker

De tapper dient een waarschuwing te krijgen als een minderjarig lid (een) product(en) probeert te kopen waar je minstens 18 jaar voor moet zijn, zoals alcohol en tabak.

  • Geboortedatum opslaan bij gebruiker en meeserializen bij Banana

Crediet velden cachen & berekenen

Het gaat niet goed schalen op de huidige manier, waarbij we alle credit_mutations, orders en order_rows van een user 100% ophalen en daaruit een krediet berekenen

Verlopen memberships

Op het moment gelden verlopen memberships ook als geldige membership voor een role. Om dit op te lossen lijkt het me handig de API ook een relationship 'current_memberships' mee te laten sturen die we dan kunnen gebruiken

Netjes uitloggen van een Banana sessie

Op dit moment kan je nog niet als gebruiker je sessie verwijderen zonder je cookie te hoeven weggooien. Dus twee opties: als je uitlogt in Tomato moet je ook worden uitgelogd in Banana (Rails-session dus niet oauth-token wise oftewel Amber zelf), of een scherm als je al inleglogd bent met "Ga verder als.... of log in als iemand anders"

Strepen op 'verlopen' borrels niet mogelijk maken

Het lijk me niet wenselijk dat er nog transacties kunnen worden toegevoegd aan borrels die afgelopen zijn. Hiermee voorkomen we dat iemand op een hele oude borrel gaat strepen en de penningmeester dat dan moet gaan uitzoeken. We zouden dit op meerdere manieren kunnen oplossen.

Eind tijd van de borrel gebruiken

We zouden de eind tijd van de borrel kunnen gebruiken. Als die verstreken is dan kan er niet meer gestreept worden. Nadeel hieraan is dat als een borrel uitloopt het systeem er 'ineens' mee ophoud. Dit zou dan weer op te lossen zijn door een knop waarmee het eind een uur uitgesteld kan worden, maar dat geeft weer extra complexiteit.

'Afgesloten op' tijd bijhouden

We zouden een extra veld kunnen maken waarin we zetten hoelaat de borrel was afgesloten. Dan kan de tapper op 'afsluiten' klikken, zodra dit is gebeurd kan er niet meer gestreept worden. Nadeel hieraan is dat de tapper handmatig een actie moet doen, wat mogelijk vergeten gaat worden.

'Afgesloten'/'verwerkt' bijhouden door penningmeester

We zouden ook een tijdstip/boolean kunnen bijhouden die de penningmeester kan instellen. Als de penningmeester dat heeft gedaan kan er niet meer op gestreept worden. Nadeel hieraan is ook dat er handmatig een actie moet gebeuren.

Ik ben benieuwd wat de rest er van denkt en of er nog meer ideeën zijn.

Error pagina's

Er zijn nog geen fancy error pagina's, dat is wel handig

Session invalidation

We moeten kijken wanneer een sessie invalid wordt. Het moet namelijk niet gebeuren tijdens het strepen, maar moet ook niet te lang zijn want dan blijft een gebruiker eeuwig zijn rollen houden

Prijslijst maken als kopie van een andere lijst

Ik denk dat prijslijsten vaak een kleine wijziging zullen zijn t.o.v. een andere lijst. (bijvoorbeeld Kick-in, wat een normale lijst is + knakworsten). Daarom denk ik dat het handig kan zijn om te kunnen aangeven dat je een prijslijst wil kopieren bij het aanmaken van een lijst

Add .nvmrc

Aangezien we gebruik maken van node is het wel zo netjes even te specificeren welke versie we gebruiken

Rollen en rechten

Rollen in Tomato zijn al een feit, dus we kunnen afschermen wie allemaal kan tappen. Het vereist wat initiële configuratie, maar je rollen worden bij het inloggen gecheckt a.d.h. van groepen in Banana.

Nou is mijn vraag, wat mag een hoofdtapper en wat mag een SB-penningmeester?

Ik heb nu twee rollen:

  • Treasurer
  • Main Bartender
  • geen rol

Ze mogen op dit moment beide alles, mensen zonder rol mogen alleen hun saldo en bestelgeschiedenis zien

Samenvatting

Samenvatting van onderstaande discussie, ook handig voor toekomstige documentatie
Laatst gewijzigd 30-11

beschrijving wie?
Producten aanmaken/wijzigen e.d. Penningmeester
Prijslijsten aanmaken/wijzigen e.d. Penningmeester
Gebruikers synchronizeren Penningmeester
Extra gebruikers aanmaken Penningmeester
Samenvatting activiteit bekijken Penningmeester
Saldomail versturen Penningmeester
Orders aanmaken/verwijderen Penningmeester & Hoofdtapper
Activiteiten aanmaken Penningmeester & Hoofdtapper
Saldo van een gebruiker zien Penningmeester & Hoofdtapper
Eigen saldo zien Iedere gebruiker

Bestellingen kunnen aanmaken

In plaats van alleen losse transacties (product, activiteit, gebruiker) bestaat een bestelling doorgaans uit meerdere items.

Een bestelling zal er dan als volgt uitzien:

  • 2 bier
  • 3 fris
  • 1 speciaalbier

Dat betekent dat de lijst met bestelling-regels een set tupels is [{:amount, :product},{:amount, :product},...] en de prijs via de gekoppelde activiteit-prijslijst moet komen. De prijs kan dan gecachet worden in order_total o.i.d.

Sneltoetsen (keyboard shortcuts) in streepscherm

De wens komt neer vanuit de volgende gedachte: zo min mogelijk tijd bezig zijn met het streepsysteem om sneller biertjes te kunnen tappen. Dit wordt onder andere gedaan door niet te wisselen tussen toetsenbord en muis/touchscreen.

Om het streepsysteem met alleen het keyboard te kunnen bedenken moeten er meer shortcuts in het streepscherm waar Ruben de volgende alvast voorstelde op het forum:

  • ESC met focus in zoekvlak reset de input
  • ENTER is hetzelfde als "Bestelling plaatsen"
  • ESC deselecteerd de huidig geselecteerde gebruiker
  • Andere shortcuts om items toe te voegen

Ruben over keyboard shortcuts:
afbeelding

Ik wilde verder voorstellen om aan elke categorie een letter te hangen, en dán pas te nummeren van 1 naar 9 (of 0). Het belangrijkste hier is overigens dat shortcuts nooit veranderen. "Muscle memory"

Ontwerp bestellingen scherm

Het design maakt eigenlijk vrij weinig uit in het hele geheel. Het enige dat echt belangrijk is, is het scherm waarmee tappers bestellingen inkloppen. Daar moet even over nagedacht worden.

1 regel: alles wat je voorstelt moet je ook zelf kunnen bouwen met zo min mogelijk jquery en zónder grote frameworks. En het wordt animatie-vrij, omdat het op elke computer moet kunnen draaien (dus ook de aardappel in Flux)

Saldomutaties (zoals inleg) kunnen aanmaken

Even oppervlakkig bedacht:

  • Een knop in User.show waarmee je een modal opent
  • In het modal de velden 'Hoeveelheid' en 'Beschrijving'/'Opmerking'
  • Na het opslaan een flash message met "Gelukt" oid
  • Inleggen tijdens een activiteit (orderscreen)

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.