Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

sphildreth/blackboard

Repository files navigation

Blackboard Logo

Blackboard

A modern terminal-based bulletin board system built with .NET 8

Bringing the nostalgic BBS experience to the modern era

.NET License: MIT Platform Language

Features โ€ข Quick Start โ€ข Documentation โ€ข Contributing โ€ข Support


๐Ÿ“– About

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.

โœจ Features

๐Ÿ—๏ธ Core Infrastructure

  • ๐Ÿš€ 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)

๐Ÿ‘ฅ User Management & Security

  • ๐Ÿ” 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

๐Ÿ’ฌ Messaging System

  • ๐Ÿ“ง 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 Management

  • ๐Ÿ—‚๏ธ 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 Game System

  • ๐Ÿšช 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

๐Ÿ–ฅ๏ธ Administration

  • ๐Ÿ“Š 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

๐Ÿš€ Quick Start

Requirements

  • .NET 8.0 SDK or later
  • Operating System: Linux, Windows, or macOS
  • Terminal: Any ANSI/VT100 compatible terminal or telnet client

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/blackboard.git
    cd blackboard
  2. Build the solution

    dotnet build
  3. Run the BBS

    dotnet run --project src/Blackboard
  4. 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.

Default Configuration

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

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Telnet Client โ”‚โ”€โ”€โ”€โ”€โ”‚ Blackboard โ”‚โ”€โ”€โ”€โ”€โ”‚ SQLite Database โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 โ”‚
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚ โ”‚
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚ Terminal UI โ”‚ โ”‚ YAML โ”‚
 โ”‚ (Admin) โ”‚ โ”‚ Config โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Project Structure

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

๐Ÿ“š Documentation

๐Ÿ› ๏ธ Development

Building from Source

# 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

Key Technologies

  • Framework: .NET 8.0
  • UI: Terminal.Gui
  • Database: SQLite with Entity Framework
  • Logging: Serilog
  • Configuration: YamlDotNet
  • Security: BCrypt.Net, JWT tokens
  • Testing: xUnit, Moq

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please read our Contributing Guidelines for details on our code of conduct and development process.

๐Ÿšง Current Status

โœ… Completed Features

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

๐Ÿšง In Development

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

๐Ÿ”’ Security

  • 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

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • 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

๐Ÿ†˜ Support


โฌ† Back to Top

Made with โค๏ธ by the Blackboard community

About

A modern BBS system with old school charm

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /