π Developed with Cursor AI
A modern open-source blog platform based on Spring Boot and React, supporting multiple languages, multi-device adaptation, and providing comprehensive content management and data analytics features.
English | δΈζ
- Modern Design: Built with Material-UI design system, supporting dark/light theme switching
- Responsive Layout: Perfectly adapted for desktop, tablet, and mobile devices
- Multi-language Support: Internationalization solution based on i18next
- Accessibility: Compliant with WCAG standards, supporting screen readers
- Rich Text Editor: Integrated WangEditor supporting multimedia content like images, videos, and code blocks
- Smart Tag System: Supporting tag hierarchical relationships to build complex content classification systems
- Diverse Content Types: Supporting articles, plans, vocabularies, and other content types
- Auto-save Drafts: Preventing accidental loss of creative content
- JWT Authentication: Secure user authentication and authorization mechanism
- Email Verification: Complete user registration and password reset workflow
- Personal Center: User profile management and preference settings
- Multi-device Sync: Cross-device data synchronization
- Content Statistics: Real-time statistics for article views, likes, etc.
- User Behavior: Detailed user access and interaction data
- Visual Charts: Intuitive data presentation and trend analysis
- Export Functionality: Support for data export and report generation
- Code Splitting: Route-level lazy loading, 60%+ improvement in first-screen loading speed
- Caching Strategy: Smart frontend caching and CDN acceleration
- SEO Friendly: Server-side rendering support, search engine optimization
- PWA Support: Offline access and push notifications
- Framework: React 18.3.0 + TypeScript 5.2.2
- Build Tool: Vite 5.2.0 (supporting hot reload and fast build)
- UI Component Library: Material-UI 5.15.18
- State Management: React Context + Hooks
- Routing: React Router DOM 6.23.1
- HTTP Client: Axios 0.28.0
- Rich Text Editor: WangEditor 5.1.20
- Internationalization: i18next 21.8.10
- Date Processing: Moment.js 2.29.4
- Animation: React Spring 9.7.1
- Code Quality: ESLint + Prettier + TypeScript
- Framework: Spring Boot 3.2.5
- Security: Spring Security 6.2.4 + JWT
- Database: MySQL + MyBatis Plus 3.5.6
- Cache: Redis (Spring Data Redis)
- Documentation: SpringDoc OpenAPI 2.5.0 (Swagger UI)
- Email: Spring Boot Starter Mail + Thymeleaf
- Monitoring: Spring Boot Actuator
- Testing: JUnit 5.9.2 + H2 Database
- Tools: Lombok 1.18.38 + Apache Commons
- JDK: 17
- Node.js: 18.20.2 (managed with Volta)
- Package Management: Maven + NPM
- Version Control: Git
- IDE: Supporting Cursor, VSCode, IntelliJ IDEA
- JDK 17+
- Node.js 18.20.2+
- Maven 3.6+
- MySQL 8.0+
- Redis 6.0+
# Navigate to backend project directory
cd tobe_blog_service
# Install dependencies and start (development environment)
mvn spring-boot:run
# Or build for production environment
mvn package -PprodDefault port: 8080
API Documentation: http://localhost:8080/swagger-ui/index.html
# Navigate to frontend project directory
cd tobe_blog_web
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production environment
npm run buildDefault port: 3000
Access URL: http://localhost:3000
tobe-blog/
βββ tobe_blog_service/ # Backend service
β βββ src/main/java/com/tobe/blog/
β β βββ core/ # Core functionality modules
β β βββ portal/ # Portal APIs
β β βββ content/ # Content management
β β βββ analytics/ # Data analytics
β β βββ beans/ # Data entities
β βββ src/main/resources/ # Configuration files
β βββ src/test/ # Unit tests
β
βββ tobe_blog_web/ # Frontend application
β βββ src/
β β βββ portal/ # User portal
β β βββ admin/ # Admin dashboard
β β βββ components/ # Common components
β β βββ services/ # API services
β β βββ contexts/ # State management
β βββ public/ # Static assets
β βββ deploy/ # Deployment related
β
βββ .github/ # GitHub configuration
βββ docs/ # Project documentation
cd tobe_blog_service
mvn testThe project adopts a layered testing strategy:
- Unit Tests: Covering service layer business logic
- Integration Tests: Testing API interfaces and database interactions
- H2 In-memory Database: Test environment isolation
cd tobe_blog_web
npm run lint # Code style checking
npm run build:analyze # Bundle analysis- Homepage Display: Latest articles and popular content recommendations
- Content Browsing: Article details, tag classification, search functionality
- User System: Registration/login, email verification, password reset
- Personal Center: Personal profile, my articles, interaction records
- Content Management: Article editing, publishing, draft management
- Tag Management: Tag creation, hierarchical relationship management
- User Management: User information, permission control
- Data Analytics: Access statistics, content performance analysis
- System Settings: Website configuration, theme settings
The project supports hot reload development with independent frontend and backend startup for debugging.
- Frontend: Built with Vite, supporting code splitting and cache optimization
- Backend: Spring Boot packaged as JAR, supporting Docker containerized deployment
- Database: MySQL master-slave architecture, Redis cluster caching
- Load Balancing: Nginx reverse proxy, supporting HTTPS
- Bundle Size: Main file reduced from 1,079KB to 415KB (61.6% reduction)
- Code Splitting: Vendor chunk separation, long-term cache friendly
- Lazy Loading: Route-level on-demand loading
- Compression Optimization: Terser compression, removing debug code
- Connection Pool: HikariCP database connection optimization
- Caching Strategy: Redis multi-level caching
- Asynchronous Processing: Spring @Async non-blocking operations
- JVM Tuning: Memory and GC optimization for production environment
- Live Demo: https://tobetogether.xyz
- API Documentation: Swagger UI
- Project Board: GitHub Projects
- Issue Reporting: GitHub Issues
We welcome all forms of contributions!
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Create a Pull Request
- WeChat: LucienChen_Chenxi
- LinkedIn: Lucien Chen
- Email: Contact via GitHub Issues
Sincere thanks to all developers who contribute to this project!
β If this project helps you, please give us a Star!