💚 Backend | 💙 Frontend | 💛 その他 |
---|---|---|
NodeJS | React | Github Actions |
Express | React Router | ESLint |
TypeScript | TypeScript | Prettier |
MongoDB | Tailwind CSS | Vitest |
+-------------------+ +---------------------+ +-------------------+
| Users | | BorrowRecords | | Books |
+-------------------+ +---------------------+ +-------------------+
| _id: ObjectId |<-┐ | _id: ObjectId | ┌->| _id: ObjectId |
| name: String | └----| user_id: ObjectId | | | title: String |
| email: String | | book_id: ObjectId |----┘ | status: Enum |
| password: String | | borrowed_date: Date | | - available |
| role: Enum | | returned_date: Date | | - borrowed |
| - admin | | | | |
| - user | | | | |
+-------------------+ +---------------------+ +-------------------+
GET /books
... 全ての本のリストを取得GET /books/{id}
... 特定の本の詳細を取得POST /books
... 新しい本を追加DELETE /books/{id}
... 特定の本を削除GET /books/popular
... 人気ランキングGET /books/search?keyword="hoge"
... 本の検索
GET /users
... 全ての利用者のリストを取得GET /users/{id}
... 特定の利用者の詳細を取得DELETE /users/{id}
... 特定の利用者を削除POST /users/image
... プロフィール写真のアップロードGET /users/me
... 認証済みの自分の情報取得
GET /borrow_records
... 全ての貸出記録を取得GET /borrow_records/books
... 全ての貸出記録を本で取得GET /borrow_records/users
... 全ての貸出記録を利用者で取得POST /borrow_records
... 貸出記録を追加(本の貸し出し)PUT /borrow_records/return
... 貸出記録を更新(本の返却)
JWT認証を採用
POST /register
... 新規登録POST /login
... ログインPOST /logout
... ログアウトPOST /reset_password
... パスワードの再設定PUT /reset_password/{token}
... 新しいパスワードの設定









