Skip to content

A modern React-based dashboard for managing 5G network slices, VNFs, and infrastructure resources. Features service chaining, resource orchestration, QoS monitoring, and multilingual support (EN/DE).

License

Notifications You must be signed in to change notification settings

muratyigitartuk/5G-Network-Slice-Manager

Repository files navigation

Network Slicing Management Platform

A modern, responsive web application for managing 5G network slices, VNFs, service chains, and infrastructure resources. This platform enables network operators and service providers to efficiently create, manage, and monitor network slices with an intuitive user interface.

License React i18n Material UI

Overview

Network slicing is a key technology for 5G networks that allows operators to create multiple virtual networks (slices) on top of a shared physical infrastructure. Each slice can be optimized for specific use cases such as IoT, autonomous vehicles, or enhanced mobile broadband.

This management platform provides a comprehensive solution for:

  • Creating and configuring network slices with specific QoS parameters
  • Managing VNFs (Virtual Network Functions) and their lifecycle
  • Orchestrating resources across compute, network, and storage domains
  • Monitoring performance and ensuring SLA compliance
  • Providing analytics and recommendations for optimization

Features

Network Slice Management

  • Slice Creation Wizard: Step-by-step guide to create slices with defined QoS parameters
  • Template Management: Save and reuse slice configurations as templates
  • Lifecycle Management: Create, update, scale, and terminate slices
  • SLA Monitoring: Track service level agreement compliance in real-time
  • Topology Visualization: Interactive view of slice architecture and components

VNF Management

  • VNF Catalog: Browse and deploy from a library of network functions
  • Configuration: Customize VNF parameters and connectivity
  • Scaling: Horizontal and vertical scaling of VNF resources
  • Health Monitoring: Real-time status and performance metrics
  • Version Control: Manage VNF versions and updates

Service Chaining

  • Visual Chain Builder: Drag-and-drop interface for creating service chains
  • Traffic Steering: Configure traffic flows between VNFs
  • Chain Templates: Create and save reusable chain configurations
  • Validation: Automatic validation of chain configurations
  • Testing Tools: Simulate traffic and validate chain performance

Resource Orchestration

  • Infrastructure Management: Unified view of compute, network, and storage resources
  • Auto-scaling: Policy-based scaling of resources based on demand
  • Resource Optimization: ML-based recommendations for resource allocation
  • Reservation: Reserve resources for high-priority slices
  • Multi-domain Support: Manage resources across multiple domains and locations

QoS Monitoring

  • Real-time Dashboards: Visual representation of key performance indicators
  • Alert System: Configurable alerts for performance thresholds
  • Historical Analysis: Trend visualization and pattern recognition
  • Report Generation: Automated reports on slice performance
  • Troubleshooting Tools: Root cause analysis and resolution recommendations

Additional Features

  • Multi-language Support: Full internationalization with English and German
  • Role-based Access Control: Granular permissions for different user roles
  • Dark/Light Theme: Customizable UI appearance
  • Responsive Design: Optimized for desktop and mobile devices
  • API Integration: RESTful APIs for integration with other systems

Screenshots

(Insert screenshots here)

System Architecture

The Network Slicing Management Platform follows a client-server architecture with a React-based frontend and a modular structure for maintainability and scalability.

High-Level Architecture

┌────────────────────┐      ┌─────────────────────┐      ┌─────────────────────┐
│                    │      │                     │      │                     │
│   Presentation     │      │     Application     │      │       Services      │
│      Layer         │◄────►│       Layer         │◄────►│       Layer         │
│                    │      │                     │      │                     │
└────────────────────┘      └─────────────────────┘      └─────────────────────┘
        ▲                            ▲                            ▲
        │                            │                            │
        ▼                            ▼                            ▼
┌────────────────────┐      ┌─────────────────────┐      ┌─────────────────────┐
│                    │      │                     │      │                     │
│     React UI       │      │  Context Providers  │      │   API Integrations  │
│    Components      │      │    & Data Models    │      │   & Data Services   │
│                    │      │                     │      │                     │
└────────────────────┘      └─────────────────────┘      └─────────────────────┘

Architectural Patterns

  1. Component-Based Architecture

    • Modular UI components with focused responsibilities
    • Hierarchical component composition for complex interfaces
    • Reusable component library for consistent design
  2. Context API for State Management

    • Centralized state management using React Context
    • Dedicated context providers for different domains:
      • AuthContext: User authentication and permissions
      • ThemeContext: UI theme management
      • SliceContext: Network slice data and operations
      • ResourceContext: Infrastructure resource management
  3. Custom Hooks Pattern

    • Encapsulates complex logic and state management
    • Provides reusable functionality across components
    • Examples: useForm, useAuth, useSlice, useResource
  4. Service Layer Pattern

    • Isolates API communication and data transformation
    • Handles data fetching, caching, and error management
    • Provides domain-specific services for different features

Technology Stack

Frontend

  • React 17: Component-based UI development
  • Material-UI: Modern and responsive component library
  • React Router: Navigation and routing
  • i18next: Internationalization framework
  • Chart.js: Interactive data visualization
  • Context API: State management

Development Tools

  • ESLint: Code quality and style checking
  • Prettier: Code formatting
  • Jest: Unit and integration testing
  • Husky: Git hooks for pre-commit quality checks
  • npm: Package management

Detailed Project Structure

/src
  /frontend                 # Frontend application
    /public                 # Static assets
      /images               # Image assets
      /locales              # Translation files (public)
      index.html            # HTML entry point
      favicon.ico           # Application favicon
      manifest.json         # Progressive Web App manifest
      robots.txt            # SEO configuration
    
    /src                    # Source code
      /components           # React components organized by feature
        /Auth               # Authentication components
          LoginPage.js      # Login page component
          AuthContext.js    # Authentication context provider
          ProtectedRoute.js # Route protection component
        
        /Dashboard          # Dashboard components
          Dashboard.js      # Main dashboard component
          DashboardCard.js  # Reusable dashboard card component
          StatusWidget.js   # Status display widget
          MetricsChart.js   # Performance metrics visualization
        
        /NetworkSlices      # Network slice management
          SliceList.js      # List of network slices
          SliceDetail.js    # Detailed view of a slice
          SliceCreation.js  # Slice creation wizard
          SliceContext.js   # Slice data context provider
        
        /QoSMonitoring      # QoS monitoring components
          PerformanceChart.js # Performance visualization
          AlertList.js      # Performance alerts component
          MetricsTable.js   # Detailed metrics display
          SLAMonitor.js     # SLA compliance monitoring
        
        /ResourceOrchestration # Resource orchestration
          ResourceDashboard.js # Resource overview dashboard
          ResourceDetail.js  # Detailed resource view
          AllocationForm.js  # Resource allocation form
          ResourceOrchestrator.js # Main orchestration component
        
        /ServiceChaining    # Service chaining components
          ChainBuilder.js   # Visual chain building interface
          ChainList.js      # List of service chains
          ChainDetail.js    # Detailed chain view
          TrafficFlow.js    # Traffic flow configuration
        
        /Settings           # User settings and preferences
          Settings.js       # Settings page component
          ProfileEditor.js  # User profile editor
          PreferencesForm.js # User preferences form
        
        /Theme              # Theme components
          ThemeProvider.js  # Theme context provider
          ThemeSelector.js  # Theme selection component
        
        /Utils              # Utility components
          ErrorBoundary.js  # Error handling component
          Loader.js         # Loading indicator component
          ConfirmDialog.js  # Confirmation dialog component
          formatUtils.js    # Formatting utility functions
        
        /VNF                # VNF management components
          VNFCatalog.js     # VNF catalog browser
          VNFDetail.js      # Detailed VNF view
          VNFDeployment.js  # VNF deployment interface
      
      /contexts             # React context providers
        AuthContext.js      # Authentication state management
        ThemeContext.js     # Theme state management
        NotificationContext.js # Notification system
        PreferencesContext.js # User preferences
      
      /hooks                # Custom React hooks
        useForm.js          # Form handling hook
        useFetch.js         # Data fetching hook
        useLocalStorage.js  # Local storage hook
        useNotification.js  # Notification hook
      
      /i18n                 # Internationalization files
        i18n.js             # i18n configuration
        /locales            # Translation files
          en.js             # English translations
          de.js             # German translations
      
      /services             # API and service integrations
        api.js              # Base API configuration
        authService.js      # Authentication service
        sliceService.js     # Network slice service
        resourceService.js  # Resource management service
        monitoringService.js # Monitoring service
      
      /styles               # Global styles
        theme.js            # Theme configuration
        globalStyles.js     # Global CSS styles
      
      /utils                # Utility functions
        formatter.js        # Data formatting utilities
        validators.js       # Form validation utilities
        helpers.js          # General helper functions
        constants.js        # Application constants
      
      App.js                # Main application component
      index.js              # Entry point
      routes.js             # Application routes
  
  /backend                  # Backend services (if applicable)
    /api                    # API endpoints
    /models                 # Data models
    /services               # Business logic
    /utils                  # Utility functions
    server.js               # Server entry point

Data Flow Architecture

The application follows a unidirectional data flow pattern to ensure predictable state management:

┌──────────────────┐       ┌───────────────────┐       ┌──────────────────┐
│                  │       │                   │       │                  │
│  User Interface  │──────►│  Context/State    │──────►│  API Services    │
│    Components    │       │   Management      │       │                  │
│                  │       │                   │       │                  │
└──────────────────┘       └───────────────────┘       └──────────────────┘
         ▲                          │                           │
         │                          │                           │
         └──────────────────────────┴───────────────────────────┘
                               Data Flow
  1. UI Components dispatch actions or update requests
  2. Context Providers process these actions and update state
  3. Service Layer handles API communication when needed
  4. Updated State flows back to components for re-rendering

Key Design Patterns

  • Provider Pattern: Context providers encapsulate domain-specific state and logic
  • Compound Components: Related components that work together (e.g., Form and FormField)
  • Render Props: Components that take a function as a child to customize rendering
  • Higher-Order Components: For cross-cutting concerns like authentication
  • Custom Hooks: Encapsulate and reuse stateful logic across components

Getting Started

Prerequisites

  • Node.js 14.x or higher
  • npm 6.x or higher
  • Modern web browser (Chrome, Firefox, Edge, Safari)

Installation

  1. Clone the repository:

    git clone https://github.com/muratyigitartuk/network-slicing-platform.git
    cd network-slicing-platform
  2. Install frontend dependencies:

    cd src/frontend
    npm install
  3. Start the development server:

    npm start
  4. Access the application at http://localhost:3000

Authentication

For demo purposes, the application uses a simulated authentication system with the following credentials:

  • Admin user: username admin with password admin123

    • Full access to all platform features
    • Can create, modify, and delete all resources
  • Operator user: username operator with password operator123

    • View-only access to most resources
    • Limited modification capabilities

Note: In a production environment, you would replace this with a proper authentication system using JWT tokens, OAuth, or another secure authentication method.

Running Tests

Run the test suite to ensure everything is working correctly:

npm test

Run tests with coverage report:

npm test -- --coverage

Building for Production

Create an optimized production build:

npm run build

The build artifacts will be stored in the build/ directory.

Internationalization

The application supports multiple languages through the i18next framework:

  • English: Default language
  • German: Complete translation

To add a new language:

  1. Create a new translation file in src/frontend/src/i18n/locales/
  2. Add the language to the language options in src/frontend/src/i18n/i18n.js
  3. Update the language selector component

Code Quality

This project maintains high code quality standards through:

  • ESLint: Enforces code style and catches potential issues

    • Run npm run lint to check for issues
    • Run npm run lint:fix to automatically fix issues
  • Prettier: Ensures consistent code formatting

    • Run npm run format to format all files
  • Jest: Comprehensive test suite

    • Component tests
    • Utility function tests
    • Integration tests
  • Husky: Pre-commit hooks

    • Prevents committing code with linting errors
    • Ensures all tests pass before commits

Browser Compatibility

The application is compatible with:

  • Chrome (last 2 versions)
  • Firefox (last 2 versions)
  • Edge (last 2 versions)
  • Safari (last 2 versions)

Performance Considerations

The application implements several performance optimizations:

  • Code splitting and lazy loading for faster initial load times
  • Memoization of expensive computations
  • Efficient rendering with React.memo and useMemo
  • Optimized bundle size through tree shaking

Contributing

We welcome contributions to improve the Network Slicing Management Platform!

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

Please read our CONTRIBUTING.md for details on our code of conduct and development process.

Troubleshooting

Common Issues

  • Authentication Issues: Clear local storage and cookies, then try logging in again
  • Missing Dependencies: Run npm install to ensure all dependencies are installed
  • Style Inconsistencies: Run npm run format to ensure consistent formatting

For more issues, please check the GitHub issues section or create a new issue.

Roadmap

Future plans for the platform include:

  • Enhanced Analytics: Advanced ML-based performance prediction
  • Multi-cloud Support: Manage resources across different cloud providers
  • Additional Languages: Support for more international languages
  • Mobile App: Native mobile applications for on-the-go management
  • Integration APIs: Expanded API support for third-party integrations

License

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

Acknowledgments

About

A modern React-based dashboard for managing 5G network slices, VNFs, and infrastructure resources. Features service chaining, resource orchestration, QoS monitoring, and multilingual support (EN/DE).

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published