Welcome 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.
Note: 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.
- Elegant Interface: Our carefully designed user interface ensures an unparalleled visual experience while reading.
- Smart Recommendations: Through advanced AI technology, we recommend the most suitable books for you, making every reading experience full of surprises.
- Diverse Features: From dark mode to convenient search functions, Read-Joy provides a comprehensive reading experience.
- Community Interaction: Share your insights with other readers, participate in discussions, and enhance your reading pleasure.
Join 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!
- Username: ikun233
- Password: 123456
- Frontend - Homepage
- Global Dark Mode
- Frontend - Search Page
- Frontend - Detail Page
- Frontend - AI Recommendations
- Frontend - Login
- Backend - Management Page
- Backend - Management Dark Mode
- Backend - User Page
- Backend - Book Page
- Backend - Category Page
- Backend - Comment Page
- Backend - Resource Page
- Mobile Adaptation
- Prerequisites
- Node.js 20.0.0+
- pnpm 8.0.0+
- Install Dependencies and Start
pnpm install
- Start the Project
pnpm run dev
- Prerequisites
- JDK 17.0+
- MySQL 8.0+
- Redis 6.0+
- Configuration
- Clone the project to your local machine
- Create a database and import the SQL script
- Start the Redis service
- Modify the database and Redis configuration in
application-dev.application
- Start the project
- Start the Project
Open the project in Idea and start the
com.readjoy.readjoyapi.ReadJoyApiApplication
class.
- Add and configure
.prod.development
in the frontend root directory (refer to.env.development
) - Run
pnpm run build
to build - Deploy to a server, such as Nginx, Apache, Tomcat, etc.
# Frontend Build
pnpm run build
# Frontend Run
pnpm run start
- Add and configure
.prod.properties
in the backend root directory (refer to.dev.properties
) - Run
mvn clean package
to build - Deploy to a server, such as Tomcat, Jetty, etc.
# Backend Build
mvn clean package -Dmaven.test.skip=true
# Backend Run
java -jar target/read-joy-api-1.0.0.jar --spring.profiles.active=prod
Expand
Category | Technology/Component | Version |
---|---|---|
Package Manager | pnpm | 9.14.4 |
Framework | Nuxt3 | ^3.14.1592 |
UI Component Library | Element Plus | ^2.9.1 |
Radix Vue | ^1.9.11 | |
Element Plus Icons | >=0.2.6 | |
State Management | Pinia | ^2.3.0 |
Pinia Persisted State | ^4.2.0 | |
Build Tool | Vite | ^6.0.2 |
Webpack | ^5 | |
Static Site Generation | Nuxi | - |
Server-Side Rendering | Nitro | - |
CSS Framework | Tailwind CSS | ^3.4.17 |
Tailwind Merge | ^2.5.5 | |
Tailwind CSS Animate | ^1.0.7 | |
TypeScript | TypeScript | 5.7.2 |
ESLint Configuration | @antfu/eslint-config | ^3.12.0 |
@nuxt/eslint | ^0.7.4 | |
@unocss/eslint-config | ^0.65.2 | |
Code Quality | ESLint | ^9.17.0 |
Consola | ^3.2.3 | |
Animation | @formkit/auto-animate | 0.8.2 |
Charts | ECharts | ^5.5.1 |
Date Handling | Dayjs | ^1.11.13 |
Markdown Editor | MD-Editor V3 | ^5.1.1 |
Internationalization | - | - |
PWA | @vite-pwa/nuxt | ^0.10.6 |
Vue Plugin | @vueuse/nuxt | ^12.2.0 |
Version Control Hooks | Husky | - |
Code Commit Standard | lint-staged | - |
Expand
Type | Library | Version | Description |
---|---|---|---|
Main Framework | Spring Boot | 3.3.5 | Spring Boot Core Dependency |
spring-boot-starter-web | Provides Web application support, including Tomcat and Spring MVC | ||
spring-boot-starter-validation | Provides data validation capabilities | ||
Database & ORM | MyBatis Plus | 3.5.9 | Integrated MyBatis Plus, enhanced MyBatis functionality |
mybatis-plus-spring-boot3-starter | |||
mybatis-plus-jsqlparser | MyBatis Plus integrated JSqlParser for extensions, pagination, etc. | ||
mybatis-plus-join-boot-starter | 1.5.2 | Provides MyBatis Plus Join support for multi-table queries | |
MySQL | MySQL Database Driver | ||
mysql-connector-j | 8.0.29 | ||
Caching | Redis | 3.3.5 | Provides Redis caching support |
spring-boot-starter-data-redis | Used for API rate limiting, data caching, etc. | ||
Security | JWT | 4.2.1 | Provides JWT authentication support |
java-jwt | User authentication and authorization | ||
mica-xss | 2.7.6 | Prevents XSS attacks | |
Utility Libraries | Hutool | 5.8.25 | A Java utility library providing various tools |
hutool-all | |||
Lombok | 1.18.24 | Simplifies Java object encapsulation | |
lombok | |||
API Documentation | Swagger | 4.4.0 | Provides Swagger3 API documentation support |
knife4j-openapi3-jakarta-spring-boot-starter | |||
Logging | Log4j2 | 2.17.0 | Provides logging support |
Welcome to contribute code to the project! Please ensure to run the lint
command for code checking before submitting.
This project is licensed under the GNU Affero General Public License v3.0
. For details, please refer to the LICENSE file.
We hope you enjoy using this project! If you have any questions, please feel free to contact us.