diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index e69de29..0000000
diff --git a/Management.Web/Management.Web.csproj b/Management.Web/Management.Web.csproj
index 25ab135..f25017d 100644
--- a/Management.Web/Management.Web.csproj
+++ b/Management.Web/Management.Web.csproj
@@ -15,5 +15,4 @@
enable
enable
-
diff --git a/Management/Models/Local/LocalCourse.cs b/Management/Models/Local/LocalCourse.cs
index ce2d6cb..f4d49e0 100644
--- a/Management/Models/Local/LocalCourse.cs
+++ b/Management/Models/Local/LocalCourse.cs
@@ -1,5 +1,3 @@
-using YamlDotNet.Serialization;
-
namespace LocalModels;
public record LocalCourse
@@ -8,35 +6,6 @@ public record LocalCourse
public LocalCourseSettings Settings { get; set; }
}
-public record LocalCourseSettings
-{
- public IEnumerable AssignmentGroups { get; init; } =
- Enumerable.Empty();
- public string Name { get; init; } = string.Empty;
- public IEnumerable DaysOfWeek { get; init; } = Enumerable.Empty();
- public ulong? CanvasId { get; init; }
- public DateTime StartDate { get; init; }
- public DateTime EndDate { get; init; }
- public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly();
-
- public string ToYaml()
- {
- var serializer = new SerializerBuilder().DisableAliases().Build();
- var yaml = serializer.Serialize(this);
- return yaml;
- }
-
- public static LocalCourseSettings ParseYaml(string rawText)
- {
- var deserializer = new DeserializerBuilder()
- .IgnoreUnmatchedProperties()
- .Build();
-
- var settings = deserializer.Deserialize(rawText);
- return settings;
- }
-}
-
public record SimpleTimeOnly
{
public int Hour { get; init; } = 1;
diff --git a/Management/Models/Local/LocalCourseSettings.cs b/Management/Models/Local/LocalCourseSettings.cs
new file mode 100644
index 0000000..9790605
--- /dev/null
+++ b/Management/Models/Local/LocalCourseSettings.cs
@@ -0,0 +1,34 @@
+using YamlDotNet.Serialization;
+
+namespace LocalModels;
+
+public record LocalCourseSettings
+{
+ public IEnumerable AssignmentGroups { get; init; } =
+ Enumerable.Empty();
+
+ [YamlIgnore]
+ public string Name { get; init; } = string.Empty;
+ public IEnumerable DaysOfWeek { get; init; } = Enumerable.Empty();
+ public ulong? CanvasId { get; init; }
+ public DateTime StartDate { get; init; }
+ public DateTime EndDate { get; init; }
+ public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly();
+
+ public string ToYaml()
+ {
+ var serializer = new SerializerBuilder().DisableAliases().Build();
+ var yaml = serializer.Serialize(this);
+ return yaml;
+ }
+
+ public static LocalCourseSettings ParseYaml(string rawText)
+ {
+ var deserializer = new DeserializerBuilder()
+ .IgnoreUnmatchedProperties()
+ .Build();
+
+ var settings = deserializer.Deserialize(rawText);
+ return settings;
+ }
+}
diff --git a/Management/Services/Files/FileConfiguration.cs b/Management/Services/Files/FileConfiguration.cs
index 4f1bc1d..e94a26e 100644
--- a/Management/Services/Files/FileConfiguration.cs
+++ b/Management/Services/Files/FileConfiguration.cs
@@ -2,7 +2,6 @@ using Management.Services;
public class FileConfiguration
{
-
public static string GetBasePath()
{
string? storageDirectory = Environment.GetEnvironmentVariable("storageDirectory");
diff --git a/Management/Services/Files/LoadMarkdownCourse.cs b/Management/Services/Files/LoadMarkdownCourse.cs
index 88edea6..f465f29 100644
--- a/Management/Services/Files/LoadMarkdownCourse.cs
+++ b/Management/Services/Files/LoadMarkdownCourse.cs
@@ -52,7 +52,9 @@ public class CourseMarkdownLoader
var settingsString = await File.ReadAllTextAsync(settingsPath);
var settings = LocalCourseSettings.ParseYaml(settingsString);
- return settings;
+
+ var folderName = Path.GetFileName(courseDirectory);
+ return settings with { Name = folderName };
}
private async Task> loadCourseModules(string courseDirectory)
diff --git a/build.sh b/build.sh
old mode 100644
new mode 100755
index 05a7907..8c78c15
--- a/build.sh
+++ b/build.sh
@@ -1,2 +1,14 @@
#!/bin/bash
+
+VERSION="1.0"
+
+dotnet publish Management.Web/ \
+ --os linux \
+ --arch x64 \
+ /t:PublishContainer \
+ -c Release \
+ -p ContainerImageTags="\"$VERSION;latest\"" \
+ -p ContainerRepository="canvas_management"
+
+docker image tag canvas_management:$VERSION alexmickelson/canvas_management:$VERSION
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..557a44e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,12 @@
+services:
+ canvas_manager:
+ image: alexmickelson/canvas_management:1.0
+ user: "1000:1000"
+ ports:
+ - 8080:8080
+ env_file:
+ - .env
+ environment:
+ - storageDirectory=/app/storage
+ volumes:
+ - ./storage:/app/storage
\ No newline at end of file