A modern terminal-based bulletin board system built with .NET 8
Bringing the nostalgic BBS experience to the modern era
Features โข Quick Start โข Documentation โข Contributing โข Support
Blackboard is a modern implementation of classic bulletin board systems (BBS), inspired by legendary systems like Telegard, Mystic, and Renegade. Built with .NET 8 and featuring a rich terminal interface, it combines the nostalgic charm of 1980s-90s BBSes with modern reliability, security, and maintainability.
Whether you're a sysop looking to run a retro BBS community or a developer interested in terminal applications and networking protocols, Blackboard provides a solid, extensible foundation with comprehensive features.
- ๐ Modern Architecture - Clean, modular .NET 8 solution with dependency injection
- ๐ Custom Telnet Server - Full ANSI/VT100 support with proper telnet protocol negotiation
- ๐ฅ๏ธ Terminal Administration - Rich Terminal.Gui interface for system management
- ๐๏ธ SQLite Database - Reliable data persistence with WAL mode and connection pooling
- โ๏ธ YAML Configuration - Hot-reloadable configuration with file watching
- ๐ Comprehensive Logging - Structured logging with Serilog (console + file output)
- ๐ Secure Authentication - BCrypt password hashing with complexity requirements
- ๐ค User Profiles - Customizable profiles with preferences and statistics
- ๐ก๏ธ Access Control - Permission levels with granular access control
- ๐ Session Management - Secure session handling with timeout controls
- ๐ Audit Logging - Complete audit trail for administrative actions
- ๐ง Private Messaging - Secure inbox/outbox with read/unread tracking
- ๐ Public Message Boards - Threaded discussions with moderation tools
- ๐จ ANSI Editor - Built-in ANSI art editor for creative message composition
- ๐ Message Search - Full-text search with pagination support
- ๐ซ User Blocking - Block/unblock system for user privacy
- ๐ Message Quotas - Configurable daily and monthly limits
- ๐๏ธ File Areas - Organized file libraries with permissions and quotas
- ๐ฅ File Transfers - Upload/download support with approval workflow
- โญ Rating System - 5-star rating system with user comments
- ๐ท๏ธ File Tagging - Tag-based organization and search
- ๐ Statistics - Download tracking and usage analytics
- ๐งน Auto-cleanup - Automatic removal of expired files
- ๐ช Door Registry - Comprehensive door game management interface
- ๐พ DOS Games Support - DOSBox integration for classic BBS doors
- ๐ Drop File Standards - Support for DOOR.SYS, DORINFO1.DEF formats
- ๐ FOSSIL Emulation - Serial port to telnet emulation for legacy compatibility
- ๐ฏ Access Controls - User-level permissions and scheduling
- ๐ Game Statistics - Session monitoring and usage statistics
- ๐ Real-time Dashboard - Live system statistics and monitoring
- ๐จโ๐ผ User Management - Comprehensive user administration tools
- ๐ง Configuration Manager - Hot-reloadable YAML configuration system
- ๐ Log Viewer - Built-in log analysis and monitoring
- ๐ ๏ธ Maintenance Tools - Database optimization and cleanup utilities
- .NET 8.0 SDK or later
- Operating System: Linux, Windows, or macOS
- Terminal: Any ANSI/VT100 compatible terminal or telnet client
-
Clone the repository
git clone https://github.com/yourusername/blackboard.git cd blackboard
-
Build the solution
dotnet build
-
Run the BBS
dotnet run --project src/Blackboard
-
Connect to your BBS
telnet localhost 2323
Note: The system starts with the telnet server offline by default for security. Use the admin interface to enable it.
Setting | Default Value | Description |
---|---|---|
Telnet Port | 2323 | Non-privileged port (23 requires root) |
Database | data/blackboard.db |
SQLite database location |
Configuration | blackboard.yml |
Main configuration file |
Logs | logs/ |
Log file directory |
Screens | screens/ |
ANSI screen files |
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Telnet Client โโโโโโ Blackboard โโโโโโ SQLite Database โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโดโโโโโโโโโ
โ โ
โโโโโโโโผโโโโโโโ โโโโโโโโผโโโโโโโ
โ Terminal UI โ โ YAML โ
โ (Admin) โ โ Config โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
Blackboard/
โโโ ๐ src/
โ โโโ ๐ฏ Blackboard/ # Main application & Terminal.Gui interface
โ โโโ ๐ง Blackboard.Core/ # Core business logic & services
โ โโโ ๐พ Blackboard.Data/ # Data access layer & SQLite management
โโโ ๐งช tests/ # Unit and integration tests
โโโ ๐ docs/ # Documentation & guides
โโโ โ๏ธ blackboard.yml # Configuration file
โโโ ๐ README.md # This file
- ๐ช Door System Guide - Complete guide to setting up door games
- ๐ Product Requirements - Detailed feature specifications
- โ Development Tasks - Current development roadmap
# Clone and build
git clone https://github.com/yourusername/blackboard.git
cd blackboard
dotnet restore
dotnet build
# Run tests
dotnet test
# Run with hot reload
dotnet watch --project src/Blackboard
- Framework: .NET 8.0
- UI: Terminal.Gui
- Database: SQLite with Entity Framework
- Logging: Serilog
- Configuration: YamlDotNet
- Security: BCrypt.Net, JWT tokens
- Testing: xUnit, Moq
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please read our Contributing Guidelines for details on our code of conduct and development process.
Phase 1: Core System
- .NET 8.0 project structure with modular design
- Custom telnet server with ANSI/VT100 support
- Terminal.Gui administration interface
- SQLite database with comprehensive schema
- YAML configuration system with hot-reload
- Serilog structured logging
Phase 2: User Management
- User registration and authentication
- Profile management and preferences
- Permission levels and access control
- Password security with BCrypt
- Session management and audit logging
Phase 3: Administration
- Real-time dashboard with system statistics
- Active sessions monitoring
- Configuration management interface
- User management tools
- System alerts and notifications
Phase 4: Messaging
- Private messaging with inbox/outbox
- Public message boards with threading
- ANSI editor integration
- Message search and pagination
- User blocking and preferences
- Admin moderation tools
Phase 5: File Management
- File areas with permissions
- Upload/download with approval workflow
- File search and tagging
- Rating system with comments
- Statistics and auto-cleanup
Phase 6: Door Games
- Door registry and management
- DOSBox integration for DOS games
- Drop file support (DOOR.SYS, DORINFO1.DEF)
- FOSSIL emulation for legacy compatibility
- Access controls and scheduling
Phase 7: Inter-BBS Networks
- FidoNet protocol support
- QWK/REP packet processing
- Network configuration interface
- Message routing and import/export
Phase 8: Enhanced UI
- Custom ANSI art screens and menus
- Real-time updates and notifications
- Enhanced keyboard navigation
- Template system for dynamic content
- System starts with telnet server offline by default
- Default telnet port 2323 (non-privileged)
- BCrypt password hashing with salt
- Comprehensive audit logging
- Session timeout controls
- Database WAL mode for better concurrency
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by classic BBS systems: Telegard, Mystic BBS, and Renegade
- Built with modern .NET technologies
- Terminal.Gui for rich console interfaces
- The BBS community for keeping the spirit alive
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Wiki
Made with โค๏ธ by the Blackboard community