diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..af4507e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,40 @@
+*.swp
+*.*~
+project.lock.json
+.DS_Store
+*.pyc
+nupkg/
+
+# Rider
+.idea/
+
+# Visual Studio
+.vs/
+
+# Fleet
+.fleet/
+
+# Code Rush
+.cr/
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+build/
+bld/
+[Bb]in/
+[Oo]bj/
+[Oo]ut/
+msbuild.log
+msbuild.err
+msbuild.wrn
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..fe812d7
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,5 @@
+{
+ "recommendations": [
+ "ms-dotnettools.csdevkit"
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..5cfaf21
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,26 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ // Use IntelliSense to find out which attributes exist for C# debugging
+ // Use hover for the description of the existing attributes
+ // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
+ "name": ".NET Core Launch (console)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ // If you have changed target frameworks, make sure to update the program path.
+ "program": "${workspaceFolder}/app/bin/Debug/net8.0/app.dll",
+ "args": [],
+ "cwd": "${workspaceFolder}/app",
+ // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..dd9cb83
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,41 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/app/app.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/app/app.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "--project",
+ "${workspaceFolder}/app/app.csproj"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/Program.cs b/app/Program.cs
new file mode 100644
index 0000000..83fa4f4
--- /dev/null
+++ b/app/Program.cs
@@ -0,0 +1,2 @@
+// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Hello, World!");
diff --git a/app/app.csproj b/app/app.csproj
new file mode 100644
index 0000000..206b89a
--- /dev/null
+++ b/app/app.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/lms-2024.sln b/lms-2024.sln
new file mode 100644
index 0000000..f61f898
--- /dev/null
+++ b/lms-2024.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.002.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app", "app\app.csproj", "{218BACFD-F385-47C4-9DE3-41F115346A2E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {218BACFD-F385-47C4-9DE3-41F115346A2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {218BACFD-F385-47C4-9DE3-41F115346A2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {218BACFD-F385-47C4-9DE3-41F115346A2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {218BACFD-F385-47C4-9DE3-41F115346A2E}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F6876004-5E5D-4B34-A4C0-0F2EAC33E6C1}
+ EndGlobalSection
+EndGlobal
diff --git a/wiki/.obsidian/app.json b/wiki/.obsidian/app.json
index 1320fae..384d478 100644
--- a/wiki/.obsidian/app.json
+++ b/wiki/.obsidian/app.json
@@ -1,3 +1,4 @@
{
- "autoPairMarkdown": false
+ "autoPairMarkdown": false,
+ "attachmentFolderPath": "screenshots"
}
\ No newline at end of file
diff --git a/wiki/.obsidian/workspace.json b/wiki/.obsidian/workspace.json
index 3f03318..9e94a1e 100644
--- a/wiki/.obsidian/workspace.json
+++ b/wiki/.obsidian/workspace.json
@@ -8,12 +8,12 @@
"type": "tabs",
"children": [
{
- "id": "3f892a1f31d4fa4b",
+ "id": "fd6d53343faccdc5",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
- "file": "contributors/Emil Harvey.md",
+ "file": "development/Typical Development Workflow.md",
"mode": "source",
"source": false
}
@@ -85,7 +85,7 @@
"state": {
"type": "backlink",
"state": {
- "file": "contributors/Emil Harvey.md",
+ "file": "development/Typical Development Workflow.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -102,7 +102,7 @@
"state": {
"type": "outgoing-link",
"state": {
- "file": "contributors/Emil Harvey.md",
+ "file": "development/Typical Development Workflow.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -125,7 +125,7 @@
"state": {
"type": "outline",
"state": {
- "file": "contributors/Emil Harvey.md"
+ "file": "development/Typical Development Workflow.md"
}
}
}
@@ -146,8 +146,16 @@
"command-palette:Open command palette": false
}
},
- "active": "3f892a1f31d4fa4b",
+ "active": "fd6d53343faccdc5",
"lastOpenFiles": [
+ "development/Getting Started.md",
+ "development/Typical Development Workflow.md",
+ "screenshots/Pasted image 20240922184538.png",
+ "GitHub CLI.md",
+ "screenshots",
+ "screenshots/Pasted image 20240922184542.png",
+ "Git.md",
+ "reference",
"contributors/Emil Harvey.md",
"contributors",
"create a link.md",
diff --git a/wiki/Git.md b/wiki/Git.md
new file mode 100644
index 0000000..dc297de
--- /dev/null
+++ b/wiki/Git.md
@@ -0,0 +1,13 @@
+This page has notes about `git`, including what it is and how to use it.
+# Overview
+`git` is a tool used to manage code. A `git` "repository" is simply a folder of code that is "version-controlled"; meaning having versions, etc. Software developers use `git` for many reasons, including:
+1. Controlling how changes get incorporated into the code. In general, we want to make sure all new changes are double checked!
+2. Rolling back changes. Maybe a bug got introduced and we need to rollback!
+3. Knowing who made a specific change to the code. This can help us know who to ask about a particular piece of code.
+4. `git` != GitHub! GitHub is an "online repository host" for `git`, meaning that it can store your `git` repositories online!
+ * We sync our code with GitHub to share our code with others. This means that when coding, we continually *pull* changes from GitHub (usually from other people) and *push* changes to GitHub.
+
+# Getting Started
+1. Install `git` from [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+2. Set up your identity. See [here](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) for instructions
+3. Ensure you are authenticated with GitHub. See [[GitHub CLI]] for one way to do this.
\ No newline at end of file
diff --git a/wiki/GitHub CLI.md b/wiki/GitHub CLI.md
new file mode 100644
index 0000000..7971e98
--- /dev/null
+++ b/wiki/GitHub CLI.md
@@ -0,0 +1,11 @@
+The [GitHub CLI](https://cli.github.com/) is a useful command-line tool for working with GitHub. It helps glue `git` with GitHub.
+The CLI cooperates with `git`. It is great to use together because the CLI can handle authentication for `git`.
+# Getting Started
+1. Install the GitHub CLI from the above link
+2. Follow these introductory steps [here](https://cli.github.com/manual/)
+# Useful commands
+
+| Command | Description |
+| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `gh repo clone ...` | Clones a repository from GitHub. Very similar to `git clone`. Fun fact: on GitHub, you can quickly copy commands to use from here:
![[Pasted image 20240922184542.png]] |
+| | |
diff --git a/wiki/development/Getting Started.md b/wiki/development/Getting Started.md
new file mode 100644
index 0000000..3e64d5a
--- /dev/null
+++ b/wiki/development/Getting Started.md
@@ -0,0 +1,33 @@
+This page describes how to get a development environment set up.
+# Overview
+## Requirements
+This project uses:
+1. [VS Code](https://code.visualstudio.com/)
+2. [Obsidian](https://obsidian.md/)
+ * This is for this wiki :)
+3. [DotNet](https://dotnet.microsoft.com/en-us/download)
+ * This is used for the app logic (aka business logic, backend)
+## Other helpful tools
+* This [extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit&WT.mc_id=dotnet-35129-website) for VS Code for C#
+* [GitHub CLI](https://cli.github.com/)
+ * See [[GitHub CLI]] for some notes on how to use this tool
+# Procedures
+## Setting up development environment
+1. Install requirements in [[#Overview]]
+2. Make sure `git` is also installed
+3. Clone this repository
+4. Open VS Code to this repository
+5. Open a terminal
+6. Navigate the terminal to `app`. This is where our current code lives!
+ * `cd app`
+7. Run `dotnet restore`
+## Running project
+* You can use VS Code's built-in "Run and Debug" menu.
+* You can also use the terminal:
+ 1. Navigate to `app`
+ 2. Run `dotnet run`
+## Wiki
+1. Open Obsidian
+2. Click 'Open folder as vault'
+3. Navigate to the `wiki` folder of this repository
+4. You'll see a dialog asking you whether to enable third-party extensions. Allow extensions!
diff --git a/wiki/development/Typical Development Workflow.md b/wiki/development/Typical Development Workflow.md
new file mode 100644
index 0000000..95e0178
--- /dev/null
+++ b/wiki/development/Typical Development Workflow.md
@@ -0,0 +1,27 @@
+This page describes how development takes place here!
+# Overview
+* This project uses **weekly** sprints/iterations. Sprints are when code changes can happen and start on **Wednesday** and end on **Tuesday**
+* Changes occur through **pull requests only**. This means you cannot push straight to `main`. Instead, you will create a `git` branch, make changes there, and then create a pull request for others to review
+* Work should be organised via **GitHub Issues**. This means that people should assign themselves to an issue before starting work. This is to prevent 2 people from working on the same thing!
+* Currently, Emil (@ehharvey) is the one creating issues and managing the direction of the project. As time goes on, this could change!
+# Process Specifics
+1. Issues are the work to be completed in a given iteration. They will be finalised by Sunday.
+2. Monday and Tuesday should be for people to discuss and assign themselves to issues. In general, **one person should work on one issue**, but this can change.
+ * Some issues are an 'everyone' issue, meaning that everyone will have identical work to complete. There will be 1 sub-issue per person.
+3. People should create a **branch** for their issue. This can be done from the Issue web page or via `git`. All branches should be based off `main`
+4. People can start coding on Wednesday!
+ * [[#Coding Standards]] below contains some pointers to think of
+5. If people have difficulties, please use your Issue page (specifically the comments) to discuss. This keeps our conversations organised.
+6. Emil will check in with people on Friday/Saturday. If needed, Emil will add people to an issue or reassign work if people are falling behind. This can happen from Saturday to Tuesday.
+7. New issues will be created throughout the week. People can discuss throughout the week, but actual work should only start in the next iteration!
+## Coding Standards
+To maintain good project health, this project has several coding standards:
+1. Code changes should have accompanying tests to verify them
+2. Code changes should have accompanying documentations (on this wiki). Things to include are:
+ 1. Online references used, like instructions and advice
+ 2. Challenges faced
+ 3. New processes (e.g., to test, build, etc.)
+3. Pull requests should:
+ 1. Be linked to the relevant Issue (do so in the description of the pull request!)
+ 2. Describe the changes made
+ 3. Be as small as possible (a pull request should only target one issue)
\ No newline at end of file
diff --git a/wiki/screenshots/Pasted image 20240922184538.png b/wiki/screenshots/Pasted image 20240922184538.png
new file mode 100644
index 0000000..03a7dd6
Binary files /dev/null and b/wiki/screenshots/Pasted image 20240922184538.png differ
diff --git a/wiki/screenshots/Pasted image 20240922184542.png b/wiki/screenshots/Pasted image 20240922184542.png
new file mode 100644
index 0000000..03a7dd6
Binary files /dev/null and b/wiki/screenshots/Pasted image 20240922184542.png differ