Sharing Christmas and Birthday lists is always a pain when there are a large number of people. This is my attempt to alleviate some of that burden. This service allows you to add items to a list, and share that list with others. Once shared, other users will be able to claim items from your list. Once claimed these items will not appear to other users and importantly, you will not be able to tell that the item was claimed or who claimed it.
WIP
Built with
- Laravel
- Livewire
- Jetstream
- TailwindCSS
This is a minimal project. No app installs required but are optional through API. This attempts to follow the UNIX philosophy of "Do one thing and do it well".
Docker or Podman is the recomended installation method. I use podman so those are the commands reflected below. There are two primary ways to install this. You can either pull the image from Docker Hub or build it yourself. Both methods are detailed below
- ```podman run -dt -p 8000:8000 -v `pwd`/gift-config:/app/database:z --name giftshare danastasio/giftshare:latest
If you do not want database persistence, then just omit the -v flag: podman run -dt -p 8000:8000 --name giftshare danastasio/giftshare:latest
- cd to the directory that will host the projet
git clone https://github.com/danastasio/giftshare.git
cd giftshare
podman build -t giftshare .
mkdir gift-config
chcon -Rt svirt_sandbox_file_t gift-config
- ```podman run -p 8000:8000 -v `pwd`/gift-config:/app/database:z --name giftshare giftshare
Unfortunately, I haven't figured out how to have artisan migrate the database after installation, so you need to create a DB and migrate it manually.
podman exec -it giftshare touch /app/database/database.db
podman exec -it giftshare php artisan migrate --force
Eventually I will add an /installation page that does this for you, but that day is not today.
At this time the applicaiton demands an SSL connection, and won't work without one. The image on docker and the files on github are configured for a production environment. So if you are testing this locally, you need to change the APP_ENV parameter in the .env file from 'production' to 'local', and clear the config cache. The steps on how to do that are detailed below.
The API currently isn't implemented. I don't recommend using it just yet. Documentation
Tests are built using PHPUnit and can be run with the following command:
php artisan test
All tests should pass
If you have any ideas, just open an issue and tell me what you think.
If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.
You can reach out to us through on our Matrix room
- David Anastasio
GNU AGPLv3