This project is a high-performance C++-based web server that supports core features such as user registration/login, deck (question set) management, and flashcard-based learning. Users can create and manage private decks, browse public decks provided by the system or community, and copy them into their personal space for study. The system follows a frontend-backend separation architecture: the frontend uses HTML and JavaScript for interactive UI, while the backend provides RESTful APIs and integrates with a MySQL-compatible database (e.g., TiDB Cloud) to ensure data persistence and consistency.
- Fixed an issue where users with no existing decks couldn't create a new deck, ensuring first-time users can successfully create their initial deck.
- Fixed a data inconsistency bug where deleting a deck did not remove its associated cards, ensuring complete cleanup.
- Completed a major architectural upgrade to improve stability and maintainability.
- Added support for high-concurrency requests and eliminated resource leaks.
- Optimized routing logic and improved frontend loading behavior to prevent UI/data mismatches.
- Introduced public decks: users can now browse system-provided shared decks.
- Added one-click copy-to-personal-space functionality for public decks.
- Standardized the number of cards drawn for study to 10 across all decks.
- Enhanced the tab-switching experience and preserved the user’s last viewed tab using local storage.
- Added a dedicated study page, allowing users to start learning directly from the deck list.
- Implemented full deck and card management capabilities:
- Create, edit, and delete decks.
- Add, edit, and delete individual flashcards within a deck.
- Provided a deck homepage and an editor page with search and management features.
- Integrated a database to enable user registration and login.
- Enabled JSON-based API interactions and established a foundational MVC architecture.
- Upgraded the frontend to support seamless AJAX operations without page refreshes.
- Integrated a professional logging system with multi-level log control, colored console output, and automatic log file rotation.
- Added connection keep-alive and timeout disconnection mechanisms to enhance server robustness.
- Upgraded to a multi-threaded Reactor architecture, significantly boosting concurrency—achieving over 110,000 requests per second in benchmark tests.
- Refactored the network connection layer by decoupling listening and communication logic for better code maintainability.
- Added support for serving static resources (HTML, CSS, images, etc.), enabling direct browser access to web pages.
- Adopted the standard Reactor event-driven model to decouple I/O handling logic.
- Evolved from an echo server to a full HTTP-compliant web server capable of returning HTML pages.
- Introduced a high-performance I/O buffer to properly handle TCP packet fragmentation (sticky/split packets).
- Project initialized with a basic Epoll-based TCP echo server and development environment setup.