Giter VIP home page Giter VIP logo

unified-shopping-list's Introduction

Amazon ended support for shopping list integrations, so I've decided to archive this repo as I no longer have any use for it. Thanks for all of the support while it lasted.

Unified Shopping List

The Unified Shopping List is an open source app to connect your shopping lists in real time. The goal of the USL is to make managing your grocery shopping easy and configurable. This project was born out of a frustration with existing integration tools, for both being a pain (or impossible) to set up, unreliable, and/or having little-to-no configurability.

The USL relies heavily on Mealie, the open source, self-hosted recipe manager developed by hay-kot. This app does not work without an instance of Mealie to back it up, so be sure to check it out if you haven't already! The app piggybacks heavily on the Mealie API, and much of the dev environment was pulled directly from the work done over there. We only officially support the v1 releases of Mealie, as well as the latest release.

To get started, head over to https://shopping-lists.genson.dev and register.

Architecture

The Unified Shopping List backend is built using FastAPI and hosted in AWS using a combination of API Gateway and Lambda. We use DynamoDB for user storage and SQS for managing webhooks.

The frontend is served by FastAPI rendering Jinja2 templates + Bootstrap, rather than a more robust framework like Angular or Vue. This keeps things ultra-simple (and the frontend is really only for configuration anyway).

Why host a centralized app? Why not build a self-hosted solution / build this functionality into Mealie?

I am a huge supporter of self-hosted applications; this app is built entirely around Mealie, which itself is a self-hosted app. It's hard to consider data that you have "somewhere else" truly yours.

That said, one of the major roadblocks with integrations comes down to the exposed APIs and authentication schemes. The goal of this app at its inception was to integrate Mealie with Todoist and Amazon's Alexa. Sadly, Amazon is removing all support for integrating with Alexa lists. However, while this was still supported, any and all Alexa integrations require an Alexa skill, which connects via OAuth, which requires a central authentication server. If you wanted to do this yourself, you would need to build and host your own Alexa skill.

While Todoist has a REST API, their webhook subscriptions (which this app uses to initiate a sync) require an app using OAuth, which (you guessed it) requires a central authentication server. You can get it working without one, but it's not particularly easy if you're not experienced with OAuth.

Which applications are supported?

Since we are just releasing the Unified Shopping List, we don't support too many applications yet. Feel free to explore GitHub discussions and suggest new apps to support.

Supported applications:

(Soft) Roadmap

Features

  • add support for more applications
  • explore weekly item scheduling
  • expand API for end-user custom integrations

Quality of Life

  • improve mobile frontend experience

Development / DevOps

  • remove SAM from dev container
  • implement github actions
    • deployments
    • versioning

unified-shopping-list's People

Contributors

michael-genson avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

unified-shopping-list's Issues

Doesn't appear to do anything

I'm not sure from the documentation what the functionality of this actually is - but I set it up anyway successfully. I added a new item to mealie, and also a new item into Alexa, but neither syncs to the other system. Thanks anyway!

Alexa discontinueing Rest API

Hello,

I am wondering if you seen Amazons Announcement regarding discontinueing the REST API. Specifically:

Warning: Starting July 1, 2024, you will no longer be able to use List skills or the List Management REST API to access Alexa lists, i.e., the Alexa Shopping and To-Do lists, in your skills or apps. For other ways to build custom voice experiences, see Steps to Build a Custom Skill. Please contact us if you have any questions.

Will USL continue to work after this "update" on July 1st?

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.