Skip to content

The backend API Github Repository for DarakBooks(다락책방). DarakBooks is an application that allows you to record books and find book clubs.

Notifications You must be signed in to change notification settings

darakbooks-project/darakbooks-BE

Repository files navigation

다락책방(DarakBooks) Backend API

The backend API Github Repository for DarakBooks(다락책방). DarakBooks is an application that allows you to record books and find book clubs.
DarabkBooks is an online platform designed for book lovers. Our service allows users to search for books, manage their reading records, and receive personalized book recommendations.
We leverage the power of ChatGPT to provide tailored book recommendations based on users' requests. Additionally, we facilitate both online and offline book clubs and reading communities.

DarakBook Website - https://frontend-book-platform.vercel.app/
DarakBook Notion - notion

📖 Swagger Documentation

다락책방 Swagger API (한국어)
DarakBooks Swagger API documentation (English)

NPM Version Package License CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

This is the github repository for Nest framework TypeScript API for DarakBooks.

To make the most of our platform, follow these steps:

  1. Sign up for an Darak Books account on our website.
  2. Explore the book search feature to find books of interest. Use filters and search parameters to refine your search results.
  3. Manage your reading records by adding books to your reading list, recording progress, and making personal notes.
  4. Benefit from our personalized bookshelf recommendations, which appear based on your reading history and preferences.
  5. Engage with ChatGPT to receive real-time book recommendations and have interactive conversations about books.
  6. Join online book clubs, participate in discussions, and connect with fellow book lovers. Attend offline book club meetups and events in your area.

Feature

  1. Book Search: Users can easily search for books using kakao search api. They can explore various genres, authors, and book details to find their next reading adventure.
  2. Reading Record Management: Our platform enables users to track their reading progress, record personal notes, and manage their reading lists. Users can conveniently add, remove, and delve into their reading records, creating a personalized reading history.
  3. Personalized Bookshelf Recommendations: By analyzing users' reading preferences and book records, our recommendation system generates tailored bookshelf recommendations. Users receive suggestions for books that align with their interests and reading habits, helping them discover new titles and expand their literary horizons.
  4. ChatGPT-powered Book Recommendations: Users can engage in interactive conversations with ChatGPT, our AI-powered chatbot. ChatGPT understands users' book preferences and provides real-time book recommendations based on their queries. Users can have dynamic and engaging conversations about books and receive instant suggestions.
  5. Online and Offline Book Clubs: DarakBooks fosters a vibrant community of book enthusiasts. Users can join online book clubs, participate in discussions, and connect with like-minded readers. We also facilitate offline book club meetups and events, bringing book lovers together to share their passion for literature.

⚒️ Backend Development Stack

NestJS NPM TypeScript Redis Swagger Python

Used API

Related References

  • To generate recommendations(books) based on given documents/datasets we used the DocQA available on LangchainJS

  • For further finetuning your model with specific data, you can also refer to ChatGPT OpenAI's Finetuning feature

  • To generate recommendation(bookshelf) based on given documents or datasets, we utilized popular Python libraries, including scikit-learn and NumPy.

🖊 Main Services

  1. ✅ Account Login
  • JWT, OAuth 2.0-based Kakao Account Login
  • Login, Logout, Reissue
  • Use Redis, Cookie memory
  1. ✅ BookGroups
  • CRUD (Create,Read,Update,Delete) Operations on groups
  • Add, Remove, View, Delete users in group
  • View all Groups, View Groups user is part of, View specific group
  • View top n groups with most members
  • Pagination groups
  1. ✅ GPT Recommendations
  • Get GPT Book Recommendations
  1. ✅ My Bookshelf
  • Add/Delete a book in my Bookshelf
  • Bookshelf Recommendations using Python's NumPy and cosine_similarity from scikit-learn
  • Get Bookshelf of Specific User
  1. ✅ My Page
  • View my profile, view other user's profile
  • User photo(S3)
  1. ✅ Record
  • CRUD Operations on Book Records
  • Add, Remove, View, Delete record for a book
  • View all Records, View Records for a Book, View Records for a Specific User, View specific record
  • Infinite Scroll of Records
  • Record Photo(s3)

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

📌 Team

About

The backend API Github Repository for DarakBooks(다락책방). DarakBooks is an application that allows you to record books and find book clubs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published