CyberPrism represents the next generation of smart industrial monitoring. It is a high-performance, modular WPF application designed to streamline factory operations through real-time data visualization, production tracking, and advanced analytics.
Built with Prism and .NET, backed by a robust ASP.NET Core and PostgreSQL backend, CyberPrism demonstrates a clean, scalable architecture suitable for enterprise-grade IoT and manufacturing solutions.
-
📊 Dynamic Dashboard
Real-time visualization of key performance indicators (KPIs) including production rates, target benchmarks, and power consumption using interactive charts. -
🏭 Production Management
Comprehensive tracking of production jobs with status indicators (Running, Delayed, Completed), due dates, and progress monitoring. -
📈 Advanced Analytics (OEE)
Deep dive into Overall Equipment Effectiveness with detailed breakdowns of Availability, Performance, and Quality components. Includes real-time downtime analysis with alerting features. -
🧩 Modular Architecture
Features a fully decoupled design using the Prism Library. Modules (Dashboard, Production, Analytics, Settings) are loaded dynamically, promoting maintainability and testability. -
⚙️ Centralized Configuration
Robust settings management system that synchronizes client preferences (themes, notifications, connection settings) with the server. -
🎨 Modern Dark UI
A sleek, industrial-grade dark theme designed for low-light factory environments, ensuring operator focus and reduced eye strain.
The first public release of CyberPrism is now available:
- v1.0.0 – Initial Public Release
https://github.com/Forrest-tech/CyberPrism/releases/tag/v1.0.0
This release introduces the core modular architecture built with Prism and .NET, backed by an ASP.NET Core + PostgreSQL backend, and establishes a scalable foundation for industrial monitoring and analytics.
- Framework: WPF (.NET 6/7/8)
- Architecture: MVVM (Model-View-ViewModel)
- Library: Prism (Dependency Injection, Event Aggregator, Modularity)
- UI Components: LiveCharts.Wpf, Material Design concepts
- Communication: HTTP Client (RESTful API consumption)
- Framework: ASP.NET Core Web API
- Database: PostgreSQL
- ORM: Entity Framework Core
- Features:
- Automated Database Seeding (Schema & Initial Data)
- Background Services (Data Simulation)
- Repository Pattern
Follow these instructions to get a local copy of the project up and running.
- .NET SDK (Version 6.0 or later recommended)
- PostgreSQL (Running locally or accessible via network)
- IDE: Visual Studio 2022 (Recommended) or Visual Studio Code
-
Clone the Repository
git clone https://github.com/your-username/CyberPrism.git cd CyberPrism -
Configure the Database
- Navigate to the server directory:
CyberPrism.Server - Open
appsettings.json. - Update the
DefaultConnectionstring with your PostgreSQL credentials:
"ConnectionStrings": { "DefaultConnection": "Host=localhost;Database=CyberPrismDb;Username=postgres;Password=your_password" }
- Note: The application includes a
DatabaseSeederthat will automatically create the database and populate it with sample data on the first run.
- Navigate to the server directory:
-
Run the Server Simply run the server application.
Option A: Using Visual Studio
- Right-click
CyberPrism.Serverproject. - Select debug -> Start New Instance (or just run the project).
Option B: Using CLI
cd CyberPrism.Server
dotnet run- The API will launch (default: `http://localhost:5133`). Keep this terminal window open.
- Launch the Client Application
- Open
CyberPrism.slnin Visual Studio. - Right-click the CyberPrism (WPF) project and select Set as Startup Project.
- Press F5 or click Start to build and run.
- Open
The solution is organized following clean architecture principles:
CyberPrism/
├── 📁 CyberPrism/ # Main WPF Shell, Bootstrapper, & Region Definitions
├── 📁 CyberPrism.Core/ # Shared Infrastructure (Models, Services, Events, Constants)
├── 📁 CyberPrism.Server/ # Backend Web API & Data Access Layer
├── 📁 Modules/ # Feature Modules
│ ├── 📁 .Dashboard/ # Dashboard Widgets & Logic
│ ├── 📁 .Production/ # Job Scheduling & Tables
│ ├── 📁 .Analytics/ # Data Processing & Charts
│ └── 📁 .Settings/ # App Configuration
└── 📁 Tests/ # Unit Tests
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.