AcgForum is a three-tier web application built for ACG content discussion, featuring a Spring Boot backend, MySQL database, and Vue.js frontend 1 .
- Backend: Spring Boot 3.4.0 with Java 17 2
- Database: MySQL with UTF-8MB4 character set 3
- ORM: MyBatis Spring Boot Starter 3.0.4 4
- Authentication: Sa-Token 1.44.0 5
- Frontend: Vue.js (located in
ui/directory)
- Java 17 or higher
- Maven 3.8.8 or higher
- MySQL 5.7 or higher
- Node.js (for frontend)
Execute the SQL script to create the database and tables:
mysql -u root -p < AcgForum.sqlThis creates:
- Database
db_forumwith UTF-8MB4 encoding 3 - Tables:
user_info,forum,post,tag, and relationship tables 6 - Pre-defined views for popular posts and users 7
Navigate to the Backend directory and build:
cd Backend
mvn clean packageRun the application:
java -jar target/acgforum-0.0.1.jarThe backend will start on the default port (8080) with embedded Tomcat 8 .
copy all the files and directeries into server and alter nginx config.
Once the backend is running, access the interactive API documentation at:
http://localhost:8080/swagger-ui.html
This is powered by Springdoc OpenAPI 2.1.0 9 .
- User Management: Registration, login, profile management with avatar upload
- Forum System: Create and manage forums with categories
- Post System: Hierarchical posts and comments with rich content support
- Social Features: Follow users, like posts, bookmark content
- Tagging System: Organize content with tags
- File Upload: UUID-based file storage for avatars and images
AcgForum/
├── Backend/ # Spring Boot application
│ ├── src/main/java/ # Java source code
│ ├── src/main/resources/ # Configuration files
│ ├── pom.xml # Maven configuration
│ └── uploads/ # File upload directory
├── ui/ # Vue.js frontend
└── AcgForum.sql # Database schema
- The application uses Lombok for code generation 10
- Database connection supports both local and remote MySQL instances
- File uploads are stored with UUID filenames to prevent collisions
- The project includes comprehensive test coverage with JUnit 5 11
Wiki pages you might want to explore: