diff --git a/Calculator.Cybernexus-code/Calculator.slnx b/Calculator.Cybernexus-code/Calculator.slnx
new file mode 100644
index 00000000..acd3a736
--- /dev/null
+++ b/Calculator.Cybernexus-code/Calculator.slnx
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Calculator.Cybernexus-code/Calculator/Calculator.csproj b/Calculator.Cybernexus-code/Calculator/Calculator.csproj
new file mode 100644
index 00000000..8acb7da5
--- /dev/null
+++ b/Calculator.Cybernexus-code/Calculator/Calculator.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/Calculator.Cybernexus-code/Calculator/Program.cs b/Calculator.Cybernexus-code/Calculator/Program.cs
new file mode 100644
index 00000000..c417d24d
--- /dev/null
+++ b/Calculator.Cybernexus-code/Calculator/Program.cs
@@ -0,0 +1,71 @@
+
+using System.Text.RegularExpressions;
+using CalculatorLibrary;
+
+bool endApp = false;
+
+Calculator calculator = new Calculator();
+while (!endApp)
+{
+ Console.Clear();
+ string? numInput1 = "";
+ string? numInput2 = "";
+ double result = 0;
+
+ Console.WriteLine("Type a number, and then press Enter");
+ numInput1 = Console.ReadLine();
+
+ double cleanNum1 = 0;
+ while (!double.TryParse(numInput1, out cleanNum1))
+ {
+ Console.WriteLine("This is not valid input. Please enter an integer value: ");
+ numInput1 = Console.ReadLine();
+ };
+
+ Console.WriteLine("Type another number, and then press Enter");
+ numInput2 = Console.ReadLine();
+
+ double cleanNum2 = 0;
+ while(!double.TryParse(numInput2, out cleanNum2))
+ {
+ Console.WriteLine("This is not valid input. Please enter an integer value: ");
+ numInput2 = Console.ReadLine();
+ };
+
+ Console.WriteLine("Cjhoose an operator from the following list:");
+ Console.WriteLine("\t+ - Add");
+ Console.WriteLine("\t- - Subtract");
+ Console.WriteLine("\t* - Multiply");
+ Console.WriteLine("\t/ - Divide");
+
+ string? op = Console.ReadLine();
+
+ if (op == null || !Regex.IsMatch(op, "^([+\\-*/])$"))
+ {
+ Console.WriteLine("Error! Please enter a valid operator.");
+ }
+ else
+ {
+ try
+ {
+ result = calculator.DoOperation(cleanNum1, cleanNum2, op);
+ if (double.IsNaN(result))
+ {
+ Console.WriteLine("This operation will result in a mathematical error.\n");
+ }
+ else Console.WriteLine("Your result: {0:0.##}\n", result);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
+ }
+ }
+ Console.WriteLine("------------------------\n");
+
+ Console.WriteLine("Press 'q' and Enter to quit the app, or press any other key and Enter to continue: ");
+
+ if (Console.ReadKey().Key == ConsoleKey.Q) endApp = true;
+
+}
+calculator.Finish();
+return;
\ No newline at end of file
diff --git a/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.cs b/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.cs
new file mode 100644
index 00000000..bac467f1
--- /dev/null
+++ b/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.cs
@@ -0,0 +1,65 @@
+using Newtonsoft.Json;
+
+namespace CalculatorLibrary
+{
+ public class Calculator
+ {
+ JsonWriter writer;
+ public Calculator()
+ {
+ StreamWriter logFile = File.CreateText("CalculatorLog.json");
+ logFile.AutoFlush = true;
+ writer = new JsonTextWriter(logFile);
+ writer.Formatting = Formatting.Indented;
+ writer.WriteStartObject();
+ writer.WritePropertyName("Operations");
+ writer.WriteStartArray();
+ }
+ public double DoOperation(double num1, double num2, string op)
+ {
+ double result = double.NaN;
+ writer.WriteStartObject();
+ writer.WritePropertyName("Operand1");
+ writer.WriteValue(num1);
+ writer.WritePropertyName("Operand2");
+ writer.WriteValue(num2);
+ writer.WritePropertyName("Operation");
+
+ switch (op)
+ {
+ case "+":
+ result = num1 + num2;
+ writer.WriteValue("Add");
+ break;
+ case "-":
+ result = num1 - num2;
+ writer.WriteValue("Subtract");
+ break;
+ case "*":
+ result = num1 * num2;
+ writer.WriteValue("Multiply");
+ break;
+ case "/":
+ if (num2 != 0)
+ {
+ result = num1 / num2;
+ writer.WriteValue("Divide");
+ }
+ break;
+ }
+
+ writer.WritePropertyName("Result");
+ writer.WriteValue(result);
+ writer.WriteEndObject();
+ return result;
+ }
+
+ public void Finish()
+ {
+ writer.WriteEndArray();
+ writer.WriteEndObject();
+ writer.Close();
+ }
+ }
+
+}
diff --git a/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.csproj b/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.csproj
new file mode 100644
index 00000000..22badd14
--- /dev/null
+++ b/Calculator.Cybernexus-code/CalculatorLibrary/CalculatorLibrary.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+