{"id":26161142,"url":"https://github.com/kiwi233333/read-joy","last_synced_at":"2025-04-14T11:54:19.249Z","repository":{"id":270135930,"uuid":"897970186","full_name":"KiWi233333/read-joy","owner":"KiWi233333","description":"悦读时光 - 一个让阅读变得更加美好与便捷的网页应用 ✨","archived":false,"fork":false,"pushed_at":"2025-03-17T05:31:24.000Z","size":15464,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T01:04:21.558Z","etag":null,"topics":["booking-system","bookmanager","element-plus","nuxt3","pwa","spring-boot"],"latest_commit_sha":null,"homepage":"https://readjoy.kiwi233.top","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KiWi233333.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-03T15:01:45.000Z","updated_at":"2025-03-23T02:08:05.000Z","dependencies_parsed_at":"2025-02-23T18:33:11.848Z","dependency_job_id":null,"html_url":"https://github.com/KiWi233333/read-joy","commit_stats":null,"previous_names":["kiwi233333/read-joy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiWi233333%2Fread-joy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiWi233333%2Fread-joy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiWi233333%2Fread-joy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiWi233333%2Fread-joy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KiWi233333","download_url":"https://codeload.github.com/KiWi233333/read-joy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248878019,"owners_count":21176241,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["booking-system","bookmanager","element-plus","nuxt3","pwa","spring-boot"],"created_at":"2025-03-11T12:26:06.441Z","updated_at":"2025-04-14T11:54:19.190Z","avatar_url":"https://github.com/KiWi233333.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=center\u003e\n \u003cdiv align=center margin=\"10em\" style=\"margin:4em 0 0 0;font-size: 30px;letter-spacing:0.3em;\"\u003e\n\u003cimg src=\"./.doc/img/logo.png\" width=\"140px\" height=\"140px\" alt=\"logo\" align=center /\u003e\n \u003c/div\u003e\n \u003ch2 align=center style=\"margin: 1em 0; padding-bottom:1em;\"\u003eRead-Joy\u003c/h2\u003e\n\n\u003cdiv\u003e\n      \u003ca href=\"https://github.com/Kiwi233333/read-joy\" target=\"_blank\"\u003e\n        \u003cimg class=\"disabled-img-view\" src=\"https://img.shields.io/badge/Github-Project-blueviolet.svg?style=plasticr\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/Kiwi233333/read-joy/stargazers\" target=\"_blank\"\u003e\n        \u003cimg class=\"disabled-img-view\" alt=\"License\"\n          src=\"https://img.shields.io/github/stars/Kiwi233333/read-joy.svg?style=social\"\u003e\n      \u003c/a\u003e\n    \u003c/div\u003e\n    \u003cdiv \u003e\n      \u003ca href=\"https://github.com/Kiwi233333/read-joy/commits\" target=\"_blank\"\u003e\n        \u003cimg class=\"disabled-img-view\" alt=\"Commit\"\n          src=\"https://img.shields.io/github/commit-activity/m/Kiwi233333/read-joy\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/Kiwi233333/read-joy/issues\" target=\"_blank\"\u003e\n        \u003cimg class=\"disabled-img-view\" alt=\"Issues\" src=\"https://img.shields.io/github/issues/Kiwi233333/read-joy\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/Kiwi233333/read-joy/blob/master/LICENSE\" target=\"_blank\"\u003e\n        \u003cimg class=\"disabled-img-view\" alt=\"License\"\n          src=\"https://img.shields.io/github/license/KiWi233333/read-joy\"\u003e\n      \u003c/a\u003e\n    \u003c/div\u003e\n    \u003cdiv\u003e\n      \u003ca href=\"https://app.netlify.com/sites/readjoy/deploys\"\u003e\n          \u003cimg src=\"https://api.netlify.com/api/v1/badges/a54a9b5e-f15e-42b5-a381-fc4469738a68/deploy-status\" alt=\"Netlify Status\"\u003e\n      \u003c/a\u003e\n    \u003c/div\u003e  \n\nLanguage : English | [简体中文](./README.md)\n\u003c/div\u003e\n\n## Project Introduction\n\n### Overview\n\nWelcome to Read-Joy 🎉: a web application that makes reading more enjoyable and convenient! Based on the modern Nuxt3 and Spring Boot technology stack, we have created a simple yet powerful reading platform for you. Whether you are a book lover or a creator seeking inspiration, this platform can meet your needs.\n\nNote: This project is a `course assignment`, and the database is `fixed` due to the project requirements, so the functionality is limited and is for learning purposes only.\n\n### Demo Address:\n\n- [Read-Joy - Frontend](https://readjoy.kiwi2333.top)\n\n- [Read-Joy - Admin Backend](https://readjoy.kiwi2333.top/admin)\n\n### Features That May Attract You\n\n- **Elegant Interface**: Our carefully designed user interface ensures an unparalleled visual experience while reading.\n- **Smart Recommendations**: Through advanced AI technology, we recommend the most suitable books for you, making every reading experience full of surprises.\n- **Diverse Features**: From dark mode to convenient search functions, Read-Joy provides a comprehensive reading experience.\n- **Community Interaction**: Share your insights with other readers, participate in discussions, and enhance your reading pleasure.\n\nJoin us and start your reading journey to discover more exciting content! Whether it's classic literature or the latest bestsellers, Read-Joy will be your best companion. Let's explore the sea of books together and enjoy every joyful reading moment!\n\n### Default Account\n\n- Username: ikun233\n- Password: 123456\n\n## Project Screenshots\n\n- Frontend - Homepage\n\n![Frontend - Homepage](./.doc/img/front/home.png)\n\n- Global Dark Mode\n\n![Global Dark Mode](./.doc/img/front/dark.png)\n\n- Frontend - Search Page\n\n![Frontend - Search Page](./.doc/img/front/search.png)\n\n- Frontend - Detail Page\n\n![Frontend - Detail Page](./.doc/img/front/detail.png)\n\n![Frontend - Resources](./.doc/img/front/res.png)\n\n![Frontend - Comments](./.doc/img/front/comment.png)\n\n- Frontend - AI Recommendations\n\n![Frontend - AI Recommendations](./.doc/img/front/ai.png)\n\n- Frontend - Login\n\n![Frontend - Login](./.doc/img/front/login.png)\n\n\n- Backend - Management Page\n\n![Backend - Management Page](./.doc/img/back/home.png)\n\n- Backend - Management Dark Mode\n\n![Backend - Management Dark Mode](./.doc/img/back/home-dark.png)\n\n![Backend - Management Dark Mode](./.doc/img/back/home-dark-2.png)\n\n- Backend - User Page\n\n![Backend - User Page](./.doc/img/back/user.png)\n\n- Backend - Book Page\n\n![Backend - Book Page](./.doc/img/back/book.png)\n\n- Backend - Category Page\n\n![Backend - Category Page](./.doc/img/back/category.png)\n\n- Backend - Comment Page\n\n![Backend - Comment Page](./.doc/img/back/comment.png)\n\n- Backend - Resource Page\n\n![Backend - Resource Page](./.doc/img/back/res.png)\n\n \n- Mobile Adaptation\n\n\u003cdiv style=\"display:flex;flex-wrap:wrap;\"\u003e\n \u003cimg src=\"./.doc/img/front/phone1.png\" width = \"150\" style=\"display:inline-block;margin: 2em;\" alt=\"Mobile Adaptation\" /\u003e\n\n \u003cimg src=\"./.doc/img/front/phone2.png\" width = \"150\" style=\"display:inline-block;margin: 2em;\" alt=\"Mobile Adaptation\" /\u003e\n\n \u003cimg src=\"./.doc/img/front/phone-dark.png\" width = \"150\" style=\"display:inline-block;margin: 2em;\" alt=\"Mobile Adaptation\" /\u003e\n\n\u003c/div\u003e\n\n## ⏳ Getting Started\n\n### ✨ Development\n\n#### 🎨 Frontend\n\n1. Prerequisites\n- Node.js 20.0.0+\n- pnpm 8.0.0+\n\n2. Install Dependencies and Start\n```sh\npnpm install\n```\n3. Start the Project\n```sh\npnpm run dev\n```\n\n#### 🖥 Backend\n\n1. Prerequisites\n- JDK 17.0+\n- MySQL 8.0+\n- Redis 6.0+\n\n2. Configuration\n- Clone the project to your local machine\n- Create a database and import the SQL script\n- Start the Redis service\n- Modify the database and Redis configuration in `application-dev.application`\n- Start the project\n\n3. Start the Project\n  Open the project in Idea and start the `com.readjoy.readjoyapi.ReadJoyApiApplication` class.\n\n### 📦 Deployment\n\n#### 1. Frontend Deployment\n  - Add and configure `.prod.development` in the frontend root directory (refer to `.env.development`)\n  - Run `pnpm run build` to build\n  - Deploy to a server, such as Nginx, Apache, Tomcat, etc.\n\n```sh\n# Frontend Build\npnpm run build\n\n# Frontend Run\npnpm run start\n\n```\n\n#### 2. Backend Deployment\n  - Add and configure `.prod.properties` in the backend root directory (refer to `.dev.properties`)\n  - Run `mvn clean package` to build\n  - Deploy to a server, such as Tomcat, Jetty, etc.\n\n```sh\n# Backend Build\nmvn clean package -Dmaven.test.skip=true\n\n# Backend Run\njava -jar target/read-joy-api-1.0.0.jar --spring.profiles.active=prod\n```\n\n## 🔧 Frontend - Tech Stack\n\n\u003cdetails\u003e\n\u003csummary\u003eExpand\u003c/summary\u003e\n\n| Category         | Technology/Component          | Version       |\n| ------------ | ----------------- | ------------ |\n| Package Manager     | pnpm             | 9.14.4       |\n| Framework         | Nuxt3            | ^3.14.1592   |\n| UI Component Library    | Element Plus      | ^2.9.1       |\n|              | Radix Vue         | ^1.9.11      |\n|              | Element Plus Icons | \u003e=0.2.6      |\n| State Management     | Pinia            | ^2.3.0       |\n|              | Pinia Persisted State | ^4.2.0    |\n| Build Tool      | Vite             | ^6.0.2       |\n|              | Webpack          | ^5           |\n| Static Site Generation  | Nuxi             | -            |\n| Server-Side Rendering    | Nitro            | -            |\n| CSS Framework     | Tailwind CSS      | ^3.4.17      |\n|              | Tailwind Merge    | ^2.5.5       |\n|              | Tailwind CSS Animate | ^1.0.7     |\n| TypeScript   | TypeScript       | 5.7.2        |\n| ESLint Configuration   | @antfu/eslint-config | ^3.12.0     |\n|              | @nuxt/eslint      | ^0.7.4       |\n|              | @unocss/eslint-config | ^0.65.2    |\n| Code Quality      | ESLint           | ^9.17.0      |\n|              | Consola          | ^3.2.3       |\n| Animation         | @formkit/auto-animate | 0.8.2      |\n| Charts         | ECharts          | ^5.5.1       |\n| Date Handling     | Dayjs            | ^1.11.13     |\n| Markdown Editor | MD-Editor V3    | ^5.1.1       |\n| Internationalization       | -                | -            |\n| PWA           | @vite-pwa/nuxt   | ^0.10.6      |\n| Vue Plugin      | @vueuse/nuxt     | ^12.2.0      |\n| Version Control Hooks  | Husky            | -            |\n| Code Commit Standard  | lint-staged      | -            |\n\n\u003c/details\u003e\n\n## 🖥 Backend - Tech Stack\n\n\u003cdetails\u003e\n\u003csummary\u003eExpand\u003c/summary\u003e\n\n| Type          | Library                                            | Version         | Description                              |\n|-------------|----------------------------------------------|-------------|-----------------------------------|\n| **Main Framework**     | **Spring Boot**                              | **3.3.5**   | **Spring Boot Core Dependency**               |\n|             | spring-boot-starter-web                      |             | Provides Web application support, including Tomcat and Spring MVC     |\n|             | spring-boot-starter-validation               |             | Provides data validation capabilities                          |\n| **Database \u0026 ORM** | **MyBatis Plus**                             | **3.5.9**   | **Integrated MyBatis Plus, enhanced MyBatis functionality**   |\n|             | mybatis-plus-spring-boot3-starter            |             |                                   |\n|             | mybatis-plus-jsqlparser                      |             | MyBatis Plus integrated JSqlParser for extensions, pagination, etc. |\n|             | mybatis-plus-join-boot-starter               | 1.5.2       | Provides MyBatis Plus Join support for multi-table queries       |\n|             | **MySQL**                                    |             | **MySQL Database Driver**                    |\n|             | mysql-connector-j                            | 8.0.29      |                                   |\n| **Caching**      | **Redis**                                    | **3.3.5**   | **Provides Redis caching support**                   |\n|             | spring-boot-starter-data-redis               |             | Used for API rate limiting, data caching, etc.                      |\n| **Security**      | **JWT**                                      | **4.2.1**   | **Provides JWT authentication support**                   |\n|             | java-jwt                                     |             | User authentication and authorization                        |\n|             | **mica-xss**                                 | **2.7.6**   | **Prevents XSS attacks**                       |\n| **Utility Libraries**    | **Hutool**                                   | **5.8.25**  | **A Java utility library providing various tools**            |\n|             | hutool-all                                   |             |                                   |\n|             | **Lombok**                                   | **1.18.24** | **Simplifies Java object encapsulation**                 |\n|             | lombok                                       |             |                                   |\n| **API Documentation**   | **Swagger**                                  | **4.4.0**   | **Provides Swagger3 API documentation support**            |\n|             | knife4j-openapi3-jakarta-spring-boot-starter |             |                                   |\n| **Logging**      | **Log4j2**                                   | **2.17.0**  | **Provides logging support**                     |\n\n\u003c/details\u003e\n\n\n## Trends\n\n![Read-Joy Star History Chart](https://api.star-history.com/svg?repos=KiWi233333/read-joy\u0026type=Date)\n\n\n## Contribution\n\nWelcome to contribute code to the project! Please ensure to run the `lint` command for code checking before submitting.\n\n## License\n\nThis project is licensed under the ``GNU Affero General Public License v3.0``. For details, please refer to the LICENSE file.\n\nWe hope you enjoy using this project! If you have any questions, please feel free to contact us.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwi233333%2Fread-joy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiwi233333%2Fread-joy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwi233333%2Fread-joy/lists"}