Giter Site home page Giter Site logo

zeuswpi / tap Goto Github PK

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

:beer: Yes. We have to drink. But we also have to pay. This does the drinking part.

Home Page: https://tap.zeus.gent

Ruby 62.86% JavaScript 4.99% HTML 21.05% Python 0.30% SCSS 9.75% Dockerfile 0.68% Makefile 0.31% Shell 0.06%
hacktoberfest rails ruby

tap's Introduction

ZeusWPI

Zeus Extraordinary Uploading Service With Productive (Prolog) Interface

Development

Install SWI-Prolog using asdf.

asdf install

This project relies on Redis for performant session storage. You can start an instance using the provided docker-compose.devel.yml file.

Next create the required directories.

mkdir -p {data,files}

Then start the development (Live reload) server using:

swipl src/main.pl devel 5000

Or run the above steps by running make devel.

Visit your browser at http://localhost:5000.

Deployment

The deployment setup is contained in the provided docker-compose.yml file.

There are 3 environment variables to change:

Key Value
ZEUSWPI_CLIENT_ID The OAUTH Client ID
ZEUSWPI_CLIENT_SECRET The OAUTH Secret
ZEUSWPI_REDIRECT_URI The OAUTH Redirect URI (Set the correct domain)

You also need to create the required directories in this mode. As these will be mounted as volumes in the container.

mkdir -p {data,files}

Then start with:

docker compose up -d

Adding admins

First the person you want make an admin has to log in to the application once. Then on the server find the user fact in the database data/user.db

assert(user(69,"the_admin",user)).

and update the record to

assert(user(69,"the_admin",admin)).

then restart the application.

tap's People

Contributors

becousae avatar chvp avatar dependabot[bot] avatar emiliasky avatar fkd13 avatar hannes-dev avatar iasoon avatar jan-pieterbaert avatar kerraii avatar maartenvn avatar myncke avatar niknetniko avatar ninewise avatar redfast00 avatar rien avatar robbe7730 avatar tibovanheule avatar tl3ilaxu avatar tomnaessens avatar vandorpedavid avatar werthen avatar wschella avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tap's Issues

Clean up the javascript

Javascript should be in assets/, not in the html.erb files

Also; use coffeescript whenever possible, this is rails.

Deleting products

Add a possibility to admins to make products not available anymore.

Can increase cost

As the cost is an inputfield, I can increase and decrease the cost of my order with up and down buttons.

Undo button

Used to cancel orders. Should only be allowed for a short time after an order has been placed.

Hall of Fame

List of users sorted based on lifetime consumptions

aptly named GROTTST HGEBRUIKES

Guest account

Allow non-zeus members (like first-years) to order stuff through a guest account, so our statistics are still correct.

Automatic interest calculation for treasurer

It could be interesting to allow the treasurer to put an interest on all/certain products; this way we could have a database of all the products' prices and be able to get some profit without having to calculate all these prices by hand.

Ordering Controle

Voegen we ook iets van controle toe? Zo dat niemand op u naam iets kan bestellen voor moest je dat willen?
Bijvoorbeeld:

  • Na bestelling een code ingeven, die aangezet en aangepast kan worden op u profiel pagina
  • Een PM, als je iets besteld hebt, naar u persoonlijk op slack (matrix/irc)

Barcode Scanner

Implement a total new workflow using barcode scanners :)

User:

  • When a user wants to order stuff, he just has to scan it.
    A button is provided for products without a barcode.

Penning:

  • When going to the store to buy products, the penning has to scan one of each product.
    • If the barcode is already present, the amount of products has to be inserted (to update the stock).
    • If the barcode is not in the database, the penning can chose to link the barcode to an existing product, or create a new product for it, and then add stock.
  • Interface for manually editing and removing barcodes.

Deletion buttons for orders

Add delete buttons on the user page for orders that have been placed less than 5 minutes ago, so users can cancel their orders.

Remove the link in the flash message as well, and refer to the user show page.

Calorie limit

Notice a user when they are consuming too much chocolate, so that we can keep @silox's girlfriend happy.

Huge header

Decrease the size of the header on normal screens.

Stock form

A form to easily add new stocks of products, instead of having to edit each product separately.

Time Zone

Tap is set in the wrong time zone.

Wrong total price

When adding a negative amount of items the total price decreases rendering it inaccurate

M&M statistics page

Please add functionality for counting M&M's and show some statistics about the counts.

Integrate kerberos

We should link the kerberos accounts to the Tab, so we can:

  • obtain the emailadresses easily to send mails
  • buy without registering

Make touchable

Links are bad. Dropdowns are bad. This should work on a tablet with a touchscreens; big buttons is all we need!

Decide on a Consumer Selection UI

How the Consumer Selection should look like, and how it should be sorted.

Current proposals [1]:
-scrolling list

Current proposals [2]:
-monthly rolling average
-yearly total sept-aug

Mail from within Tapmachien

It'd be usefull if an admin (say, @Iepoev), could mail everyone their debts from within tapmachien. Perhaps with a lower bound, like, "mail everyone with debts above 5EUR they ought to pay."

Fix the UI

It does not seem like anything is reachable... at all. We should integrate the basic layout (See Saruman, Gandalf, ...) so the website gets some backbone

Design

Some pages need new styles.

Check list

  • UI mockup
  • Feature list
  • Programming Language
  • How are you planning to transfer data from tap to somewhere else?

Decide on a workflow

What seems more logical?

  1. A screen with the users (see #2), a user selects himself and then one or multiple items
  2. A screen where someone selects one or multiple items and then selects his name on the list (see #2)

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.