Simple webapp for publishing wishlists
Find a file
2022-03-08 22:30:23 +01:00
.github remove report export 2022-03-08 20:14:44 +01:00
.husky husky for pre-commit and pre-push added 2022-02-03 21:25:27 +01:00
prisma Fix issue with deleting of a wishlist 2022-02-20 15:48:35 +01:00
public Favicon added 2022-03-08 20:17:42 +01:00
reports ... 2022-03-04 22:07:38 +01:00
src new loading animation 2022-03-08 22:29:45 +01:00
.dockerignore first commit 2022-01-29 11:04:24 +01:00
.editorconfig first commit 2022-01-29 11:04:24 +01:00
.env.template #3 protect endpoints via API-Key 2022-02-09 22:11:32 +01:00
.eslintrc.cjs first commit 2022-01-29 11:04:24 +01:00
.gitignore ... 2022-03-04 22:15:48 +01:00
.nvmrc nvmrc added 2022-02-13 19:32:24 +01:00
.prettierrc first commit 2022-01-29 11:04:24 +01:00
components.d.ts remove report export 2022-03-08 20:14:44 +01:00
docker-compose.yml #3 protect endpoints via API-Key 2022-02-09 22:11:32 +01:00
Dockerfile fix docker build issue 2022-02-06 16:16:37 +01:00
env.d.ts first commit 2022-01-29 11:04:24 +01:00
examples.http api key added to all example requests in examples.http 2022-02-09 23:21:08 +01:00
index.html Favicon added 2022-03-08 20:17:42 +01:00
nodemon.json first commit 2022-01-29 11:04:24 +01:00
package-lock.json 1.2.0 2022-03-08 22:30:23 +01:00
package.json 1.2.0 2022-03-08 22:30:23 +01:00
postcss.config.js first commit 2022-01-29 11:04:24 +01:00
README.md Update README.md 2022-02-20 21:21:55 +01:00
sandbox.config.json codesandbox config / demo added 2022-02-16 20:57:04 +01:00
tailwind.config.js feature: dark-mode 2022-02-07 20:14:55 +01:00
tsconfig.backend.json first commit 2022-01-29 11:04:24 +01:00
tsconfig.json component auto import added 2022-02-18 20:45:22 +01:00
vite.config.ts ... 2022-03-04 22:20:30 +01:00

Wishlist App

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.

Demo

Open in CodeSandbox

Screenshots

Overview Image Detail Image

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

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"