NowCoder — A Forum Platform (Spring Boot Project)

Independently Developed over Four Months Part-time

In my previous projects, I was either only responsible for a small part of the system or mainly focused on frontend tasks, without fully understanding how data flows through the entire application. To address this, I spent the last four months developing a forum platform using Spring Boot — not a large-scale system, but one that includes all core functionalities. These include user registration with email activation, password storage with MD5 and salt, captcha protection during login, different pages and features for visitors and logged-in users, creating posts with sensitive word filtering, comments, private messages, and more.

In addition to basic CRUD features, I worked on system optimization using middleware. For example, I cache frequently accessed data such as likes in Redis. When available in Redis, data is read directly from there; otherwise, the system falls back to MySQL. This reduces database load and improves efficiency. Finally, I successfully deployed the project on an Aliyun ECS server. The application is publicly accessible at: http://8.217.11.251/ (currently unavailable because my Alibaba Cloud ECS free trial has expired. I will restore access asap.)

gif1 gif2 gif3 gif4 gif5 gif6

Key Highlights:

✅ Built core forum features including login, posting, commenting, messaging, likes, and follows (Munich, Germany)
✅ Optimized like and follow features with Redis (~5000 TPS)
✅ Implemented asynchronous in-site notifications using Kafka (~7000 TPS)
✅ Integrated Elasticsearch for full-text search with precise matching and keyword highlighting
✅ Designed a two-level caching system with Caffeine and Redis (~8000 QPS) to improve access to popular posts
✅ Applied Spring Security for role-based access control and URL-level permission management
✅ Used HyperLogLog and Bitmap to efficiently track UV and DAU (using only MBs of memory for 1M users)
✅ Deployed the application on Aliyun ECS, with Nginx as the web server for public access


Architecture Diagram:

architecture

Database Tables Structure:

Tables in MySQL Database

Full Data Flow:

My Project Notes:

Share: Twitter Facebook LinkedIn