Code Monkey home page Code Monkey logo

pimp-my-wolt's Introduction

Background

My team uses Wolt every day for our lunch order.
We use Wolt's shared order and split the payment on Cibus.
Instead of manually splitting the payment on Cibus,
I've created this nice Chrome extension to achieve it automatically.

Installation

  1. Visit Pimp my Wolt Chrome Web Store page and click Add to Chrome.

  2. Set your group name. Different users may share the same group name for easier maintenance of group members:

Set.Your.Group.mov
  1. Onboard new members to your group. Onboarding is done once and used for every future order.
    If you missed someone, don't worry, you can always try our automatic splitting algorithm.
    From now on you'll never split payments manually! 🎉
Split.Payment.mov

pimp-my-wolt's People

Contributors

amitmarx avatar ronlv10 avatar

Stargazers

 avatar Yair Siman Tov avatar Nimrod Avni avatar Pavel Vaks avatar Ben Grynhaus avatar Michael Salaverry avatar Omer BenAmram avatar Guy Lapid avatar  avatar Amir Eshel avatar Eran Shmil avatar Ben Baler avatar Olli Mahlamäki avatar Or Noyman avatar Amit Dahan avatar Maya Hamo avatar Omer Burshtein avatar Lior Chen avatar

Watchers

 avatar  avatar Guy Lapid avatar

Forkers

senior-ai

pimp-my-wolt's Issues

Allow to configure the backend URL for groups

Hey,

First of all I wanna say GREAT JOB DUDE! this looks amazing!
I definitely wanna use this where I work (Trigo).

A tiny issue is, it seems you are saving all the groups in https://amitmarx.wixsite.com/pimp-my-wolt
I don't want my groups to get mixed with your groups (e.g if I create a group named "hello" and you have already created a group with the same name, we are going to be mixed together).
What would you say about allowing to configure the backend URL (maybe in the extensions configuration page, another input below the groupName)?
It would allow me to write an alternative backend that exposes the same simple API the frontend requires, and set it up on a server in my company, or even on localhost, or whatever.

I can open a PR for these changes if you agree.

If you want, I can also write my backend here (either in rust or python, haven't decided yet) to allow others to clone it and run an instance wherever they want.
I can also write it in a separate repo, I don't really care.

Another option would be to remain with your backend, but add to it some credentials, so that every company would have some username & password and its groups data would be separated from other companies.
It doesn't have to be top security, just some basic steps to ensure that groups from different companies won't get mixed together so easily, and to prevent users from different companies from being able to easily send DELETE requests for groups in other companies.

What do you think?

Thanks 😄

Splitting stopped working

Seems like the Cibus iframe broke in the last couple of days (worked on Sunday just fine) and now in the Cibus iframe where you split the bill, nothing happens.

Undefined behavior when user has no permmisions to guest's Cibus

When some guest did not provide Cibus permissions to the user performing the order, then when arriving at the Cibus order page, this guest doesn't appear in the user's list of available Cibus guests.
This causes this piece of code:

const cibusName = guests.find(
  (guest) => guest.woltName === guestOrder.name
)?.cibusName;

in handleCibusPayment to return undefined.
It causes an incorrect debt division among the rest of the guests.

I think a good behavior would be to show some red warning label such as "You don't have permissions to Cibus for some of the guests: Moshe Cohen, Ploni Almoni", and cancel the automatic division.
I guess anyway in this case the user would want to go talk to the person who didn't give them permissions, and refresh the order page so that the new guest would appear, so there is no point in continuing...

What do you think?
I can open a PR with these changes if you are cool with that.

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.