kevmoens / ellabit Goto Github PK
View Code? Open in Web Editor NEWThe interactive C# coding app to learn/practice coding.
License: MIT License
The interactive C# coding app to learn/practice coding.
License: MIT License
Split up the IChallenge interface to smaller interfaces so Challenges only get the properties they need
String.Empty when compared will return true if it is null or an empty string ("")
Make a challenge returning a boolean value if the string passed in is equal to string.Empty
Cover Symmetric and Asymmetric methods and explain why choosing the method.
FIPS compliance
Very nice project. Well done !
I'm getting a problem when I run ad hoc the tt files by right clicking "run custom tool". The generated code gets completely messed up.
Take care
Currently challenges are displayed with the key and value touching.
Create examples using Tuples to show different ways Tuples can be used.
Make a challenge making the user create a function that verifies string input for null or whitespace and returns true if it is the case
Create new property named TestMethods that is a List in IChallenge
If TestMethods is null or have no tests use the TestCode and Tests property to run tests.
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
When a user creates code that produces an infinite loop the app crashes or hangs forever.
Find a way to handle this gracefully.
Could use SyntaxTree to put counters in loops and we could check for the count to see if we can throw an error.
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
For larger challenges we should be able to have a IChallengeSteps interface which has a property List.
Each IChallengeStep has a Description, and TestCode and Tests
FYI future may have tests that check console output or syntax trees.
Create new example.
Add questions and notes below.
Create a challenge that has the user create a string that would require using an escape character and/or literal string
Notes from Microsoft Learn
Example
Console.WriteLine("Hello "World"!"); --fail
Console.WriteLine("Hello "World"!");
Console.WriteLine("c:\source\repos"); --fail
Console.WriteLine(@"c:\source\repos");
Console.WriteLine("c:\source\repos");
Console.WriteLine("Test\nNew Line");
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
When creating a challenge I would like the ability to capture output. This would allow challenges to be created so we can tell if a loop was used.
'''Csharp
public void LoopWhile (double material)
{
while(material > 0)
{
Console.WriteLine(material);
material -= 1;
}
}
'''
Make new challenges that show different aspects of Reflection.
Properties
Methods
Overloaded Methods
Fields
Private vs Public
At our manufacturing facility we need to calculate lead time based off what type of part we need to create our finished good. A part can be Purchased, Transferred (from another facility of our company) or be manufactured in house at the plant the user is in.
As a challenge pass in a test for each of these types of parts.
A manufactured part has a lead time of 1 day.
A transferred part has a lead time of 2 days.
A purchased part has a lead time of 7 days.
Syntax highlighting determines the color and style of source code displayed.
On each challenge there is a property named Tags.
private Dictionary<string, string> _tags = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"Math","Add"}, { "Level", "1" } };
public Dictionary<string, string> Tags { get => _tags; set => _tags = value; }
Tags describe the type of coding being done in each challenge.
In the code above is describing the challenge uses Math to Add and Level is 1.
You can add as many tags as you like to help describe the challenge.
Add a Level tag to each challenge.
Currently levels are described as:
Level 1 = beginner concept
Level 2 = Use of beginner concept with more detailed knowledge to code
Level 3 = Something that requires in depth knowledge to code
Level 4 = This is a complex challenge that will take more than 10 minutes to code for an advanced developer
Level 5 = This is a senior developer that will take more than 15-20 minutes to code
Show the test was, what the expected value is and the actual output.
While tests are running show a status.
If possible, use animations to keep user engaged.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.