A full-stack notes and knowledge-sharing platform with user authentication, categories, collections, comments, real-time messaging, and full-text search.
| Category | Technology |
|---|---|
| Framework | Spring Boot 2.7.18 |
| Security | Spring Security |
| Persistence | MyBatis |
| Database | MySQL 8.0 |
| Cache | Redis |
| Messaging | WebSocket |
| Search | MySQL full-text + Jieba |
| Storage | Local filesystem |
| Logging | Log4j2 |
| Markdown | Flexmark |
| Spring Mail | |
| Templating | Thymeleaf |
| Utilities | Hutool |
| Testing | JUnit |
| Category | Technology |
|---|---|
| Build | Vite |
| Framework | React 18 + TypeScript |
| Routing | React Router DOM |
| State | Redux Toolkit |
| UI | Ant Design |
| Styling | TailwindCSS |
| HTTP | Axios |
| Markdown | Cherry Markdown |
| Quality | ESLint, Prettier |
| Git hooks | Husky, lint-staged |
- IDE: Any (e.g. IntelliJ IDEA 2024+, VS Code)
- JDK: 17
- Node: 18+
- Package manager: Maven (backend), npm/pnpm (frontend)
- Version control: Git
LNote/
├── backend/ # Spring Boot API
│ ├── src/
│ └── pom.xml
├── frontend/ # React SPA
│ ├── src/
│ └── package.json
└── README.md
- JDK 17
- Maven 3.6+
- Node.js 18+
- MySQL 8.0
- Redis
- Create a MySQL database and configure
application.yml(or env) with URL, username, and password. - Ensure Redis is running and reachable.
- From the project root:
cd backend
./mvnw spring-boot:runThe API runs by default on the port defined in your Spring Boot config (e.g. 8080).
- Install dependencies:
cd frontend
npm install- Set environment variables (e.g. in
.envor.env.development) for the API base URL. - Start the dev server:
npm run dev- Build for production:
npm run buildIf a Dockerfile or docker-compose.yml is provided in the repo, you can run the backend (and optionally frontend) via Docker. Refer to those files for exact commands.
./mvnw spring-boot:run— run the application./mvnw test— run tests./mvnw package— build JAR
npm run dev— start Vite dev servernpm run build— TypeScript check + production buildnpm run preview— preview production buildnpm run lint— run ESLintnpm run format— format with Prettiernpm run format:check— check formatting
- Backend: Use
application.yml/application.propertiesand environment variables for datasource, Redis, JWT, file paths, and mail settings. - Frontend: Use
.env,.env.development, and.env.productionfor API base URL and other env-specific values.
See LICENSE in the repository root.