This repository has been archived on 2025-12-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Andrew Trieu ba7d935fc8 Add names
2023-05-14 21:12:14 +03:00
2023-04-27 13:28:31 +03:00
2023-05-14 21:12:14 +03:00
2023-04-28 09:41:31 +03:00
2023-04-27 13:28:31 +03:00
2023-04-27 13:28:31 +03:00
2023-05-04 13:23:47 +03:00

Renewable Energy Plant System Application

This is a Scala program to simulate a renewable energy plant.

Use Cases

The program can be used to simulate the following use cases:

  • The system is designed to monitor and control the power plant's renewable energy sources, including wind turbines, hydroelectric power plants, and nuclear power plants. The system can display and modify the number of active power plants.
sequenceDiagram
    participant User
    participant System
    participant File

    User->>System: Monitor power plants
    System-->>User: Display number of active power plants
    User->>System: Modify number of active power plants
    System->>File: Update number of active power plants
  • The system is capable of collecting data related to the energy generated by renewable sources and storing it in a file.
sequenceDiagram
    participant User
    participant System
    participant Fingrid API
    participant Files

    User->>System: Collect data
    System->>Fingrid API: Get data
    Fingrid API-->>System: Return data
    System->>Files: Store data in files
  • The system provides a view of the power plant's energy generation and storage capacity, allowing operators to adjust the power plant's operation as needed. This view shows the data stored in the file.
sequenceDiagram
    participant User
    participant System
    participant Files

    User->>System: View data
    System->>Files: Read data from files
    System-->>User: Ask for filters and sorting
    User->>System: Provide filters and sorting
    System->>System: Filter and sort data
    System-->>User: Display data
  • The system can analyze the data collected from renewable sources. It can filter the data on an hourly, daily, weekly and monthly basis. It can sort the data where possible. User can search for required data stored in the system. Data Analysis includes:
    • Mean
    • Median
    • Mode
    • Range
    • Midrange
sequenceDiagram
    participant User
    participant System
    participant Files

    User->>System: Analyze data
    System->>Files: Read data from files
    System-->>User: Ask for filters
    System->>System: Filter data
    System->>System: Analyze data
    System-->>User: Display results
  • The system should be able to detect and handle issues with renewable energy sources, such as low energy output, and generating alerts for the operators accordingly.
sequenceDiagram
    participant User
    participant System
    participant Files

    System->>Files: Read data from Files
    System->>User: Alert user

Class Diagram

classDiagram
    Main <|-- Date
    Main <|-- URL
    Main <|-- HttpURLConnection
    Main <|-- Paths
    Main <|-- Files
    Main <|-- SimpleDateFormat
    Main <|-- Try
    Main <|-- readLine
    Main <|-- Source
    Main <|-- ListMap
    Main <|-- PrintWriter

    class Main{
        +String API_KEY
        +Map[Int, String] dataSources
        +String energySources
        +Double alertThreshold
        +collectData()
        +modifySources(lines: List[String], newValue: String, sourceType: String)
        +readSources(modificationFn: (List[String], String, String) => List[String])
        +analyzeData(data: Map[Date, Double])
        +compareTime(lastTimestamp: Date, data: List[String], filter: Int, format: SimpleDateFormat)
        +filterData(data: List[String], compareFn: (Date, List[String], Int, SimpleDateFormat) => Map[Date, Double])
        +readData()
        +sortData(data: Map[Date, Double])
        +printData(data: Map[Date, Double])
        +searchData(data: List[String])
        +alertUser()
        +scanSystem(data: List[String])
    }

Video

REPS.webm

Description
A software application for Renewable Energy Plant System
Readme 44 KiB
Languages
Scala 100%