LBN Competitive System Simulation
A multi-role esports platform simulation system built with C# Windows Forms, supporting five roles (Audience, Advertiser, Player, League Owner, Admin) with interactive operations, using JSON serialization for data storage and EPPlus for Excel export functionality.
Project Introduction
LBN Competitive System Simulation is a comprehensive competitive platform simulation system inspired by the "Golf with Your Friends" game competitive system, aiming to provide a multi-role, multi-functional competitive league management solution. This project is developed using C# Windows Forms, implementing complete functional modules including audience browsing, advertiser placement, player management, league operations, and system administration, simulating a real esports league operational ecosystem and providing users with an immersive competitive system experience.
Core Philosophy
- Multi-Role System Design: Five major roles (Audience, Advertiser, Player, League Owner, Admin) each with distinct responsibilities
- Complete Ecosystem Simulation: Covers event browsing, advertisement placement, player registration, league management, and system monitoring
- Data-Driven Management: Uses JSON for system data storage, supporting export and import
- Visual Interactive Design: Rich UI animations and user experience optimization
My Responsibilities
As the main developer of this project, I collaborated with yutao33003 and qqwnua to complete the following work:
System Architecture Design
- Designed multi-role architecture achieving role separation and permission management
- Established ID verification system supporting user registration, login, and role assignment
- Designed League data structure including member management, event information, and advertisement configuration
- Implemented JSON serialization mechanism for persistent data storage
Core Feature Implementation
- Main Page & Login System: Countdown auto-redirect, role identification, customized welcome messages
- Audience Browse Interface: League list view, search filtering, league details display
- Advertiser Dashboard: Advertisement placement management, budget tracking, league selection
- Player Management System: Profile editing, league join/leave, performance queries
- League Owner Backend: Member management, event scheduling, advertiser negotiation, league settings
- Admin Control Panel: System monitoring, user management, data backup and restoration
UI/UX Design
- Designed theme color system (Audience Green, Admin Red, Player/League Blue)
- Implemented button animation effects and scene transitions
- Designed custom controls and visual data presentation
Core Features
1. Multi-Role System
- Audience (Normal):
- Browse all public league information
- Search and filter leagues
- View event schedules and results
- Advertiser:
- Manage advertisement placement budget
- Select target leagues for advertisement
- Track advertisement effectiveness and exposure data
- Player:
- Personal profile management (nickname, record, league affiliation)
- Apply to join leagues
- View personal event records and rankings
- League Owner:
- Create and manage leagues
- Review player join applications
- Set league rules and event schedules
- Manage league advertisement partnerships
- Edit league information and logo
- Admin:
- Global system monitoring
- User account management
- Database backup and restoration
- Review league applications
2. League Management System
- League Information Management:
- League name, type (Casual/Competitive), description
- Custom league logo (image upload support)
- Member list and role assignment
- Event Management:
- Event schedule creation and editing
- Event result recording
- Score and ranking calculation
- Member Management:
- Member application review
- Member role adjustment (Regular Member/Vice Owner)
- Member removal and blacklist management
3. Data Management & Serialization
- JSON Data Storage:
- Uses Newtonsoft.Json for serialization/deserialization
- Supports independent storage of user data, league data, event data
- Data Import/Export:
- Excel format export (using EPPlus)
- JSON format backup and restoration
- Data Validation:
- Uniqueness checks (User ID, League ID)
- Required field validation
- Data format verification
4. Search & Filter Functions
- League Search:
- Fuzzy search by name
- Filter by type (Casual/Competitive)
- Sort by member count
- Player Search:
- Search by nickname
- Filter by league affiliation
- Sort by record
5. Visualization & Interactive Design
- Animation Effects:
- Login page countdown animation
- Button hover/click effects
- Scene fade-in/fade-out transitions
- Theme Color System:
- Role-specific color schemes (Audience Green, Admin Red, Player Blue)
- Unified visual language and component styling
- Custom Controls:
- Custom button styles
- Custom list item display
- Custom dialog design
Technologies Used
Core Frameworks
- Windows Forms: .NET Framework 4.7.2 desktop application framework
- C#: Primary development language
- Visual Studio: Integrated development environment
Data Processing & Serialization
- Newtonsoft.Json (13.0.3): JSON serialization/deserialization
- EPPlus (7.0.5): Excel file reading/writing and export
- System.ComponentModel.DataAnnotations: Data validation
UI Components & Multimedia
- PresentationCore: WPF component integration
- System.Drawing: Graphics processing and rendering
- System.Media.SoundPlayer: Sound playback
Testing Framework
- MSTest (3.1.1): Unit testing framework
- Microsoft.VisualStudio.TestPlatform: Testing platform
Other Dependencies
- System.DirectoryServices: Directory service access
- System.Configuration: Application configuration management
Project Status
Current Version: Completed (Everything is Done)
- Core Functionality Status: All main features implemented and tested
- Known Issues: Code cleanup work in progress
Feature Completion
- ✅ Completed:
- Five role system (Audience, Advertiser, Player, League Owner, Admin)
- Complete league management functionality (creation, editing, member management, event management)
- User authentication and authorization system
- Data serialization and persistent storage
- Excel data export functionality
- Complete UI/UX design and animation effects
- Unit testing framework establishment
- 🔄 In Progress:
- Code refactoring and cleanup (Make the codes much more cleaner)
- 📋 Abandoned:
- Sound effects system (Perhaps adding some SFXs? - Nah I give up)
Development Challenges & Learnings
1. Multi-Role System Architecture Design
Challenge: How to implement five different roles in a single application, each with independent interfaces and permissions?
Solution:
- Designed
IDclass as the user base data structure including role field - Created independent Forms for each role (MainForm, AdminMainForm, PlayerMainForm, LeagueMainForm, etc.)
- Used
DialogResultmechanism to redirect to corresponding interface based on role after login - Implemented role checking logic to restrict access to specific functionalities
Learnings:
- Deep understanding of object-oriented design inheritance and polymorphism concepts
- Mastered Windows Forms multi-window management techniques
- Learned Role-Based Access Control (RBAC) implementation methods
- Understood the importance of user experience in multi-role systems
2. JSON Data Persistence & Serialization
Challenge: How to store complex object structures (users, leagues, events) in JSON format while ensuring data integrity?
Solution:
- Used Newtonsoft.Json for serialization/deserialization
- Designed clear data models (User, League, Event classes)
- Implemented custom JsonConverter to handle special data types (e.g., Guid)
- Established data validation mechanism to ensure loaded data validity
- Implemented data backup mechanism to prevent data loss
Learnings:
- Mastered advanced JSON serialization techniques
- Learned data model design best practices
- Understood the importance of data integrity and consistency
- Familiar with file I/O operations and error handling
3. Complex League Management Logic Implementation
Challenge: How to implement complete league lifecycle management including member applications, reviews, event scheduling, advertisement partnerships, and other complex business logic?
Solution:
- Designed
Leagueclass encapsulating all league-related data and methods - Implemented state machine pattern to manage league states (Draft, Active, Archived)
- Used collections (List, Dictionary) to manage member and event data
- Established event system to notify member changes and event updates
- Implemented review process (Pending → Approved/Rejected)
Learnings:
- Deep understanding of business logic layer design patterns
- Mastered practical application of state machine pattern
- Learned complex data relationship management techniques
- Enhanced system design and abstract thinking abilities
4. Excel Data Export Functionality
Challenge: How to export system data as structured Excel files for user data analysis?
Solution:
- Integrated EPPlus library for Excel operations
- Designed export templates (headers, field mapping, format settings)
- Implemented data transformation logic mapping object properties to Excel fields
- Used SaveFileDialog to provide file save interface
- Handled performance optimization for large data exports
Learnings:
- Mastered third-party library integration techniques
- Learned Excel file format and operation methods
- Understood data transformation and mapping design patterns
- Enhanced file handling and UI interaction design capabilities
5. Team Collaboration & Version Control
Challenge: How to ensure code quality and smooth feature integration in three-person collaborative development?
Solution:
- Used Git for version control with clear branching strategy
- Conducted regular Code Reviews and integration testing
- Used unit testing framework (MSTest) to ensure functionality correctness
- Established development documentation and comment standards
- Tracked tasks and bugs through GitHub Issues
Learnings:
- Enhanced team collaboration and communication skills
- Mastered Git branch management and conflict resolution techniques
- Learned unit test writing and test-driven development
- Understood software engineering processes and project management
- Cultivated code review and refactoring awareness
Collaborators
- yutao33003
- qqwnua
Application Snapshots