Skip to content

ThisIsBenny/wishlist-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wishlist App

A simple webapp to manage your wishlist.



The wishlist app is a simple webapp for publishing wishlists. It allows to share wishlists for different people or occasions with friends and family. If something from the wishlist was bought, it can be removed from the list to prevent duplicate purchases.

Features

  • Support of multiple wishlists
  • Items can be removed from the wishlist by everyone (no registration needed for friends and family).
  • Grab title, description and image-url from url via open graph meta tags
  • i18n support

Screenshots

Overview Image Detail Image

Install

Docker Setup

The app can be easily installed via Docker compose. During installation, only a password (API key) and a path for the SQLite database must be specified.

version: '3.7'

services:
  wishlist:
    image: thisisbenny/wishlist-app:latest
    environment:
      - API_KEY=TOP_SECRET
    ports:
      - '5000:5000'
    volumes:
      - ./data:/app/data

Usage

When you open the app for the first time, you have to enter the API key. To do this, click the icon on the right in the header or open the /login page. If the API key is stored, a toggle for the edit mode appears in the header. The edit mode allows you to create new wishlists or edit existing ones.

If you want add new entries to the wishlist, open a wishlist and activate the edit mode. To more easily to add something to the wishlist, you can create a bookmark with the following content (replace [DOMAIN] with your own domain):

javascript:window.location='[DOMAIN]/add-wishlist-item?url=' + window.location

Now you can select the bookmark on a product page. This will redirect you to the app and pre-fill the form with the Open Graph data from the original page.

Demo Bookmark adding

Once the wish list is ready, it can be shared with friends and family. They have the option to remove purchased items from the wish list so that they are not bought a second time.

Wishlists that have been set as non-public can only be opened with a deep link. They do not appear on the start page (unless the API key is set).

Development Guide

npm install
npx prisma generate
npx prisma migrate deploy

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Run Unit Tests

npm run test:unit

Lint

npm run lint

Typecheck

npm run typecheck

Other stuff

"Buy Me A Coffee"