Skip to content

reckyy/tsundoku

Repository files navigation

Tsundoku

サービス名

Tsundoku ※積読とは違い、読んでいった本を積むことをTsundokuと定義しています。

サービスURL

https://tsundoku.tech

サービス概要

Tsundokuは「読書はしたいけれど、つい先延ばしにしてしまう」「読書習慣がなかなか続かない」といった問題を解決するための読書管理アプリです。 章ごとにメモを取り、読書ログをつけることで、自分の読書履歴を簡単に記録できます。また、GitHubのContributionグラフのように読書活動を視覚的に確認できるため、モチベーション維持につながります。

使用方法

本を検索 読書メモを取る 読書ログを公開
本を検索して、登録します。 本ごとにメモを取り、読書ログをつけます。 読書した本やログは公開できます。
Image from Gyazo Image from Gyazo Image from Gyazo

使用技術

フロントエンド

Next.js React Typescript Storybook Mantine Auth.js

  • Next.js App Router 14.2.3
  • React 18
  • TypeScript 5
  • Storybook 8.1.9
  • Mantine 7.12.2
  • Auth.js 5.0.0

バックエンド

Rails Ruby Rubocop Rspec Postgresql Factorybot Simplecov

  • Ruby on Rails7.2.1
  • Ruby 3.3.5
  • RuboCop 1.66.1
  • RSpec 3.13.1
  • PostgreSQL
  • FactoryBot 6.5.0
  • SimpleCov 0.22.0

起動方法

インストール

git clone --recurse-submodules https://github.com/reckyy/tsundoku.git

起動の前準備

今回Auth.jsを用いて、認証機能を実装しています。 Tsundokuでは、Googleログインを採用しているため起動前に以下の設定をする必要があります。 Google OAuthの設定

環境変数の登録

.env.localを作成し、以下の内容を追加してください。 AUTH_SECRETは、npx auth secretで生成された値を入力してください。

AUTH_GOOGLE_ID={CLIENT_ID}
AUTH_GOOGLE_SECRET={CLIENT_SECRET}
AUTH_SECRET={YOUR_SECRET}
NEXT_PUBLIC_RAILS_API_URL="http://localhost:3001/api"
NEXT_PUBLIC_NEXT_URL="http://localhost:3000"
STORYBOOK_NEXT_PUBLIC_RAILS_API_URL="http://localhost:3001/api"
STORYBOOK_NEXT_PUBLIC_NEXT_URL="http://localhost:3000"

セットアップ

bin/setup

起動

bin/dev

テスト

バックエンドのテスト

cd tsundoku-backend
rspec
rubocop

フロントエンドのテスト

cd tsundoku-frontend
npm run storybook
// 上記を実行したターミナルは開いたまま別のターミナルで下のコードを実行
npm run test-storybook
// 実行結果をブラウザで見たい場合は
open coverage/storybook/lcov-report/index.html