Skip to content

A simple shopping list management application built with Rails8 and Hotwire and Tailwind CSS

License

Notifications You must be signed in to change notification settings

hidakatsuya/shopping_list-web

Repository files navigation

Shopping List

Test

A simple web application to manage shopping list. It is built with Rails8 and Hotwire and Tailwind CSS.

  • Sign up and sign in with Google account
  • Managing items on shopping list
  • Updating the completion status of items
  • Dark mode support
  • Multiple language support
  • API for adding items: POST /items

Related Products

Built With

  • Ruby 3.3
  • Rails 8.0 beta
  • Turbo (turbo-rails)
  • Propshaft
  • Tailwind CSS (tailwindcss-rails)
  • SQLite

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Google OAuth Client
  • Ruby or Docker

Installing

Copy .env.sample to create .env, and set the client ID and secret key for Google OAuth client.

cp .env.sample .env

Then, execute the followings to launch the application.

./bin/setup
./bin/dev

Alternatively, you can launch the application in a Docker container.

docker compose build
docker compose run app bin/setup
docker compose up -d

Running the tests

First, refer to the above and launch the application in a Docker container.

Runnning unit tests:

docker compose exec app bin/rails test

Running system tests:

docker compose exec app bin/rails test:system

Running all tests:

docker compose exec app bin/rails test:all

Deploying to production using Kamal

Copy .kamal/envs.sample to create .kamal/envs, and set the environment variables for production.

Load the environment variables from .kamal/envs file.

source .kamal/envs

Run kamal to deploy.

kamal setup

License

This project is licensed under the MIT License - see the LICENSE file for details