Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3 release #5

Merged
merged 126 commits into from
Jan 16, 2024
Merged
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
bb54f60
update: use app router
watasuke102 Dec 20, 2023
a8faa3e
update: APIをNext.js側へ移行
watasuke102 Dec 21, 2023
500db00
update: utilsディレクトリを移動
watasuke102 Dec 21, 2023
d90134b
update: eslint>drizzle関連のプラグインを追加
watasuke102 Dec 22, 2023
95ddc4d
add: APIリクエストを行うaxiosのwrapper
watasuke102 Dec 22, 2023
805dd4d
fix: ReplaceTagOfCategory>型にanyを使ってたのが微妙だったので直した
watasuke102 Dec 22, 2023
52f0e76
update: back/はもはや使われていないので削除
watasuke102 Dec 22, 2023
b75b578
fix: category>APIから取得できるデータの型定義が間違っていた
watasuke102 Dec 22, 2023
229c505
fix: ExamTable>開けるようにした
watasuke102 Dec 23, 2023
2217974
update: edit page>axiosによるPOSTとreducerを導入
watasuke102 Dec 23, 2023
c1473b3
fix: importエラーで動かなくなっていた
watasuke102 Dec 23, 2023
c469c81
update: edit>appディレクトリで全部動かすようにした
watasuke102 Dec 23, 2023
f167cac
update: Toast>グローバルに配置し、hooksを用いて開閉を行うようにした
watasuke102 Dec 23, 2023
9739350
update: Toast>gsapではなくframer-motionを使うように
watasuke102 Dec 23, 2023
5aa6dcf
fix: Modal>--vhはもう使われてなさそうなので削除
watasuke102 Dec 23, 2023
44981d3
update: edit>入力のバリデーションを別ファイルに分けた
watasuke102 Dec 24, 2023
10e8d5b
update: ExamEditForms>appディレクトリ下に移動
watasuke102 Dec 28, 2023
89faa68
add: Vitest
watasuke102 Dec 28, 2023
cb58c64
add: EditReducer
watasuke102 Dec 28, 2023
f4a1473
update: edit>server componentを使うなど
watasuke102 Dec 28, 2023
356f093
fix: next.config関連のエラーが出ていた
watasuke102 Dec 28, 2023
305502d
remove: ExamEditFormsOld
watasuke102 Dec 28, 2023
6df46c1
fix: Toast>timeoutをclearするようにした
watasuke102 Dec 31, 2023
18ee4e9
remove: drizzle.config.ts
watasuke102 Dec 31, 2023
d9e0211
update: EditReducer>使わないアクションを消したり使うアクションを追加したりした
watasuke102 Dec 31, 2023
3009dde
update: edit>reducerを使うようにした
watasuke102 Dec 31, 2023
f9713f0
update: ExamEditForms>useShortcutを使うようにした
watasuke102 Dec 31, 2023
5d69a38
add: react-textarea-autosize
watasuke102 Dec 31, 2023
2dba9fb
update: 解答作成部分を別コンポーネントに分けた
watasuke102 Dec 31, 2023
5f3f3a5
update: Form>rowの指定をできないようにした
watasuke102 Dec 31, 2023
1bcd292
update: Header>ButtonではなくLinkにした
watasuke102 Dec 31, 2023
b39eda8
update: Font Awesomeを廃止、svgを直接置くようにした
watasuke102 Dec 31, 2023
cae6ed1
fix: CategolyDetail>項目の高さなどサイズが合っていなかった
watasuke102 Dec 31, 2023
6af9c5e
fix: TagListEdit>表示が崩れていた
watasuke102 Dec 31, 2023
1c8dfba
update: FavoriteStar>表示崩れを修正、framer-motionに移行
watasuke102 Jan 2, 2024
cff70e2
fix: 過去の修正で消し忘れていたものを削除
watasuke102 Jan 2, 2024
12797fe
fix: ビルド時にエラーになっていた部分
watasuke102 Jan 4, 2024
e079e2d
update: Date型カラムをtoISOStringで文字列にする
watasuke102 Jan 4, 2024
50e587b
fix: eslintなどが動作していなかった
watasuke102 Jan 4, 2024
423c43b
fix: Header>高さを固定した
watasuke102 Jan 5, 2024
94ba7c0
add: 特定のタグが付けられているすべてのカテゴリを取得するエンドポイント
watasuke102 Jan 5, 2024
e499d45
add: ExamPage
watasuke102 Jan 5, 2024
690fabf
update: asyncなfetch関数をutilsからimportできるように
watasuke102 Jan 5, 2024
40539a2
add: ArrayUtil>TogglleElement
watasuke102 Jan 6, 2024
45f8838
update: ExamPage>データの仮置きをしてUIの調整をした
watasuke102 Jan 6, 2024
e95e9b6
fix: server componentからSWRをimportしようとしてエラーになっていた
watasuke102 Jan 6, 2024
4f17fac
fix: EditReducer>toggle_multiにおいて空要素の排除をしていなかった
watasuke102 Jan 6, 2024
7a67fcb
fix: EditReducerのcontextがExamContextになっていた
watasuke102 Jan 6, 2024
22a12b5
add: ExamReducer
watasuke102 Jan 6, 2024
1fdb111
update: ExamPage>解答の編集を出来るように
watasuke102 Jan 6, 2024
904b802
update: ExamPage>add shortcut
watasuke102 Jan 6, 2024
45b03c2
remove: 不要になったコンポーネント群
watasuke102 Jan 6, 2024
fd8be3a
fix: Header>2段表示のとき要素がはみ出ていた
watasuke102 Jan 6, 2024
c09ac63
fix: ExamReducer>test was wrong
watasuke102 Jan 6, 2024
2597421
update: ExamPage>答え合わせをして、結果を表示できるようにした
watasuke102 Jan 7, 2024
cadff9e
update: ExamPage>コメントを表示するようにした
watasuke102 Jan 7, 2024
1e528bb
add: ExamPage>終了時のmodal
watasuke102 Jan 7, 2024
6aee7a6
fix: ビルドが出来なかった問題
watasuke102 Jan 7, 2024
0bd2f59
update: ExamTable>FmtCorrectAnswerを使ってリファクタリングした
watasuke102 Jan 7, 2024
558708b
fix: remove unused import
watasuke102 Jan 7, 2024
81b49a1
update: ExamTable>選択肢表示のところに線を引いた
watasuke102 Jan 7, 2024
28b498b
update: ExamAnswerArea>ページ切替時の自動フォーカス
watasuke102 Jan 7, 2024
3510152
add: ComboBox
watasuke102 Jan 7, 2024
7cec8b7
update: AnswerEditArea>並び替えハンドルの高さを調節
watasuke102 Jan 7, 2024
f6c2ed7
update: ExamTable>(Multi)?SelectもSortも等しく文字列joinで選択肢を表示するようにした
watasuke102 Jan 7, 2024
4d4fe5f
fix: ExamPage>全ての問題に解答していない状態で終了できないようにした
watasuke102 Jan 7, 2024
0b67c32
update: ExamPage>解答状況の表示を1-indexedに
watasuke102 Jan 7, 2024
345ab03
add: new exam type 'ListSelect'
watasuke102 Jan 7, 2024
1fc5e8b
update: ComboBox>枠線の色を変更
watasuke102 Jan 8, 2024
dfbfed4
update: ExamPage>ButtonContainerを上に持っていった
watasuke102 Jan 8, 2024
45543e7
update: ExamPage>スマホでExamStatusListを表示するボタンを追加
watasuke102 Jan 8, 2024
e27b8f7
update: ExamStatusList>スマホで左スライドによって開けるようにした
watasuke102 Jan 10, 2024
589217a
update: Header>decrease height
watasuke102 Jan 10, 2024
773ee46
refactor: components/pageを排除
watasuke102 Jan 10, 2024
b430676
update: layout.tsxとHeaderを各ページに用意
watasuke102 Jan 11, 2024
d93b047
update: 2023->2024
watasuke102 Jan 12, 2024
3b95a8e
fix: Button>アイコンのサイズを指定
watasuke102 Jan 13, 2024
7e575be
add: プライバシーポリシー
watasuke102 Jan 13, 2024
aed854b
fix: api>useApiDataの型を暗黙的に配列とするのをやめた
watasuke102 Jan 13, 2024
2b2d0ff
rename: useCategoryData.ts -> swr_hooks.ts
watasuke102 Jan 13, 2024
617f1c5
add: ログイン画面とその機能
watasuke102 Jan 13, 2024
3eecc8a
update: 未ログイン時にAPIリクエストを弾くようにした
watasuke102 Jan 13, 2024
4bf1c03
update: ログアウト機能を追加
watasuke102 Jan 13, 2024
07c43ba
fix: ファイルパス変更のコミット漏れ
watasuke102 Jan 14, 2024
453a308
update: 未ログイン時にページアクセスされたらリダイレクトするようにした
watasuke102 Jan 14, 2024
705288a
add: user endpoint
watasuke102 Jan 14, 2024
ed0ef6d
update: タグ置き換え関数においてカテゴリ全般ではなく文字列を受け付けるようにした
watasuke102 Jan 14, 2024
bc9bfa2
fix: category/idにおいて配列ではなくカテゴリ単体で返すようにした
watasuke102 Jan 14, 2024
b550b5a
fix: 不要なログ出力を削除
watasuke102 Jan 14, 2024
4c7b3bc
add: 履歴をDBに保存できるようにした
watasuke102 Jan 14, 2024
516a204
update: お気に入りの編集を出来るようにした
watasuke102 Jan 14, 2024
a307bfc
fix: dbのconnectionをcloseするようにした
watasuke102 Jan 14, 2024
6b712d0
update: profile>履歴をちゃんと表示できるようにした
watasuke102 Jan 14, 2024
c5bfa90
refactor: ExamHistoryItem>app/に移動
watasuke102 Jan 14, 2024
7cb666e
update: history>作成時間でソートするようにした
watasuke102 Jan 14, 2024
ca95c22
update: examtable>履歴の内容をちゃんと表示できるようにした
watasuke102 Jan 14, 2024
262b971
update: GitHub Actionsでテスト等も別jobで実行するように
watasuke102 Jan 14, 2024
0c704cf
fix: ビルドに失敗する問題
watasuke102 Jan 14, 2024
31d0721
update: examからexamtableに直接飛んで結果閲覧をできるようにした
watasuke102 Jan 14, 2024
4903169
update: ButtonContainer>gapを挿入
watasuke102 Jan 14, 2024
6d2f865
update: HistoryItem>gapを狭めた
watasuke102 Jan 14, 2024
05e5c46
fix: ci>envファイルの作成を忘れていた
watasuke102 Jan 14, 2024
2d22563
update: WebHookに情報を流すようにした
watasuke102 Jan 15, 2024
d781716
update: ExamEditForms>問題追加時、そこにジャンプするようにした
watasuke102 Jan 15, 2024
21f0018
fix: AnswerEdit>チェックボックス非表示時の横幅を調整
watasuke102 Jan 15, 2024
be35bc6
update: Header>トップレベルのlayout.tsxで表示するようにした
watasuke102 Jan 15, 2024
89f1170
update: tag(page)>読み込み中でも部分的に描画するようにした
watasuke102 Jan 15, 2024
064d5d5
update: 説明の文面を微調整する等
watasuke102 Jan 15, 2024
2143717
Revert "update: Header>トップレベルのlayout.tsxで表示するようにした"
watasuke102 Jan 15, 2024
8003cf1
remove: react-helmet
watasuke102 Jan 15, 2024
e7912c3
update: 管理者であれば要望に回答できるようにした
watasuke102 Jan 15, 2024
53fabf6
fix: drizzleがタイムゾーンを無視するらしいので+0900した
watasuke102 Jan 15, 2024
a5e5cec
remove: unused packages
watasuke102 Jan 15, 2024
974b422
fix: CategolyDetail>History表示はもはや利用されていないので削除
watasuke102 Jan 15, 2024
8b174de
fix: categoly -> category
watasuke102 Jan 15, 2024
152b49b
add: logo png and inkscape project file
watasuke102 Jan 15, 2024
3c6b9ad
fix: ExamTable>自分の解答を見るボタンを履歴以外で非表示にした
watasuke102 Jan 15, 2024
010be29
fix: HistoryItem>全問正解時に解き直しボタンまわりの表示がズレていた
watasuke102 Jan 15, 2024
c28245d
fix: 履歴のタイトル処理がおかしかった
watasuke102 Jan 15, 2024
e4b626c
update: request>横スクロールが出来るようになった
watasuke102 Jan 15, 2024
83537b8
update: modal周りの見た目を調整
watasuke102 Jan 15, 2024
4b0e874
update: tag(page)>スマホ時に項目をいっぱいまで広げて表示するようにした
watasuke102 Jan 15, 2024
605211d
update: request>回答更新時のWebHook文面を「追加」ではなく「更新」とした
watasuke102 Jan 15, 2024
406ebf3
fix: format
watasuke102 Jan 15, 2024
c95f89b
update: README.md
watasuke102 Jan 15, 2024
d132596
release: 3.0.0
watasuke102 Jan 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion back/.gitignore → .dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.next
node_modules
env.json
docker
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
next.config.js
.eslintrc.js
11 changes: 8 additions & 3 deletions front/.eslintrc.js → .eslintrc.js
Original file line number Diff line number Diff line change
@@ -3,7 +3,12 @@ module.exports = {
browser: true,
es2021: true,
},
extends: ['eslint:recommended', 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended'],
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
'plugin:drizzle/all',
],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
@@ -12,7 +17,7 @@ module.exports = {
ecmaVersion: 12,
sourceType: 'module',
},
plugins: ['react', '@typescript-eslint', 'unused-imports', 'react-hooks', 'header'],
plugins: ['react', '@typescript-eslint', 'unused-imports', 'react-hooks', 'header', 'drizzle'],
ignorePatterns: [],
rules: {
indent: [
@@ -46,7 +51,7 @@ module.exports = {
'line',
[
' TAGether - Share self-made exam for classmates',
{pattern: ' CopyRight \\(c\\) 2020-\\d{4} watasuke', template: ' CopyRight (c) 2020-2023 watasuke'},
' CopyRight (c) 2020-2024 watasuke',
'',
' Email : <[email protected]>',
' Twitter: @Watasuke102',
50 changes: 40 additions & 10 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -5,28 +5,58 @@ name: build

on:
push:
branches: ["main", "dev"]
branches: ['main', 'dev']
pull_request:
branches: ["main", "dev"]
branches: ['main', 'dev']

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.0]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: setup
run: npm install
- name: test
run: npm run test
check:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.0]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: setup
run: npm install
- name: basic check
run: npm run check
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.0]
node-version: [20.0]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- name: Setup (frontend)
run: cd front && npm install && cp -v sample-env.json env.json
- name: Setup (backend)
run: cd back && npm install
- name: lint
run: npm run lint
cache: 'npm'
- name: Setup
run: npm install
- name: create env.ts
run: cp -v sample-env.ts env.ts
- name: build
run: npm run build
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/docker/data
node_modules
.idea
.next
env.json
env.ts

/public/sw*
/public/workbox*
7 changes: 7 additions & 0 deletions .prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
tabWidth: 2
printWidth: 120
singleQuote: true
arrowParens: 'avoid'
trailingComma: 'all'
jsxSingleQuote: true
bracketSpacing: false
82 changes: 38 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,65 @@
# TAGether - Share self-made exam for classmates
<div align="center">

# TAGether - Share your self-made exam with classmates

![tagether-logo](/public/static/logo.png)

</div>

## What's this

誰かが作った問題をクラスの人と共有できるようなサービスです
テスト対策問題のような問題を作成し、クラスの人と共有できるようなサービスです

## How to use

1. /back/src 及び/front の `sample-env.json` を `env.json` にリネーム、必要に応じて編集
1. [Google Cloud Console](https://console.cloud.google.com/apis/credentials/oauthclient) でOAuthクライアントを作成
1. `cp sample-env.ts env.ts`等を
1. env.tsを編集し、OAuthのclient idなどを適切に設定する
1. `./start.sh` (本番環境は`./start.sh product`)

## docker-compose について

最新情報は docker-compose.yml をチェックしてね
最新情報は compose.yaml をチェックしてね

| 名前 | ポート |
| ------------------------ | ------ |
| フロントエンド (Next.js) | 3009 |
| バックエンド (Node.js) | 8079 |
| phpMyAdmin | 8888 |
| MySQL | 3334 |

## ディレクトリ構造

ディレクトリは主に docker, back, front の 3 つ
### /public

favicon など

### /src

React (Next.js) によるフロントエンド

- app/
Next.js App router
- assets/
アイコンのsvg(基本的に[Google Fonts](https://fonts.google.com/icons)から取ってきたもの)
- db/
drizzleのschemaとMySQLへ接続する関数

<details>
<summary>ディレクトリ構造の詳細</summary>
- components/
- common/ → 共通して使うコンポーネント
- features/ → 機能ごとに分ける
- tests/
Vitestによるテスト
- types/
型定義
- utils/
JSXを返却しない関数群

### Docker
### /docker

docker-compose 用
docker compose 用

- mysql/
DB 初期化の `db_init.sql`
- nginx/
nginx の設定ファイル (`api.conf`)

### back

Express (Node.js) によるバックエンド (API)

- index.js
Express の初期化など
- api.js
各リクエストに対するレスポンス
- sample-env.json
env ファイルのテンプレート

### front

React (next.js) によるフロントエンド

- public/
favicon 用
- src/
- components/
- common/ → 共通して使うコンポーネント
- features/ → 機能ごとに分ける
- pages/ → src/pages の実態みたいな
- utils/ → React に関係しないスクリプト
- pages
Next.js のルーティング用
- types
型定義ファイル
- sample-env.json
env.json ファイルのテンプレート

</details>

## LICENSE

1 change: 0 additions & 1 deletion back/.dockerignore

This file was deleted.

29 changes: 0 additions & 29 deletions back/.eslintrc.json

This file was deleted.

20 changes: 0 additions & 20 deletions back/.prettierrc.yaml

This file was deleted.

39 changes: 0 additions & 39 deletions back/README.md

This file was deleted.

Loading