GithubHelp home page GithubHelp logo

kevmoens / ellabit Goto Github PK

View Code? Open in Web Editor NEW
54.0 2.0 19.0 62.27 MB

The interactive C# coding app to learn/practice coding.

License: MIT License

HTML 1.79% C# 86.66% CSS 0.46% JavaScript 11.08%
learn-csharp csharp challenge hacktoberfest

ellabit's Introduction

ellabit's People

Contributors

adam-henson avatar aelzie avatar arshadariff avatar joose1992 avatar joshimar1 avatar kevmoens avatar samkituka avatar wolf-361 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ellabit's Issues

Problem with .tt files

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

Add tags to challenges 60-80

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

User creates code that produces an infinite loop

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.

Add tags to challenges 141-160

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

Add tags to challenges 161-180

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

Add tags to challenges 101-120

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

Add tags to challenges 121-140

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

Provide a way for challenges to be broken into steps

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.

New Challenge - Create string that requires an escape character and/or literal string

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

  • Use character escape sequences when you need to insert a special character into a literal string, like a tab \t, new line \n, or a double quotation mark ".
  • Use an escape character for the backslash \ when you need to use a backslash in all other scenarios.
  • Use the @ directive to create a verbatim string literal that keeps all whitespace formatting and backslash characters in a string.

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");

Add tags to challenges 46-60

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

Allow challenges to examine console output for tests

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;
}
}
'''

Create new challenge that would make sense to use a switch statement

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.

Add tags to challenges 81-100

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

Enhance UI for Testing 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.