# Project: RuoYi ## Project Overview This project, RuoYi, is a Java-based rapid development platform with a separate frontend and backend. **Backend:** * **Framework:** Spring Boot * **Security:** Spring Security, JWT * **Database:** The presence of `pom.xml` and `ry_*.sql` files suggests a relational database like MySQL. * **Modules:** It's a multi-module Maven project, including `ruoyi-admin`, `ruoyi-framework`, `ruoyi-system`, `ruoyi-quartz`, `ruoyi-generator`, and `ruoyi-common`. * **Key Technologies:** Redis, Druid connection pool, PageHelper for pagination. **Frontend:** * **Framework:** Vue.js 2 * **UI Library:** Element UI * **Build Tool:** vue-cli ## Building and Running ### Backend The backend is a standard Maven project. **Build:** To build the entire project, run Maven's `package` goal from the root directory: ```bash mvn package ``` **Run:** The `ry.sh` script is provided to manage the application. To run the application, you can use the following command from the root directory: ```bash # Make sure the script is executable chmod +x ry.sh # Start the application ./ry.sh start ``` This will start the `ruoyi-admin.jar`. To stop the application: ```bash ./ry.sh stop ``` ### Frontend The frontend is a Vue.js project located in the `ruoyi-ui` directory. **Install Dependencies:** Navigate to the `ruoyi-ui` directory and install the dependencies. The `pnpm-lock.yaml` file suggests `pnpm` is the preferred package manager. ```bash cd ruoyi-ui pnpm install ``` **Run in Development Mode:** ```bash pnpm run dev ``` **Build for Production:** ```bash pnpm run build:prod ``` ## Development Conventions * **Backend:** The project follows standard Maven project structure and conventions. It is a multi-module project. * **Frontend:** The frontend uses Vue.js with single-file components (`.vue` files). The `package.json` file defines scripts for common tasks. * **Database:** SQL migration scripts seem to be located in the `sql` directory. * **Code Generation:** The project includes a `ruoyi-generator` module, which can be used to generate boilerplate code.