Browse Source

Merge pull request #332 from 01-edu/ascii-art

ascii-art subjects
content-update
augusto-mantilla 5 years ago committed by GitHub
parent
commit
a7bff80ec4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 42
      subjects/ascii-art-reverse.en.md
  2. 64
      subjects/ascii-art.en.md
  3. 26
      subjects/ascii-color.en.md
  4. 46
      subjects/ascii-fs.en.md
  5. 60
      subjects/ascii-justify.en.md
  6. 51
      subjects/ascii-output.en.md
  7. 28
      subjects/good-practices.en.md

42
subjects/ascii-art-reverse.en.md

@ -0,0 +1,42 @@
## ascii-art-reverse
### Objectives
Ascii-art-reverse consists on reversing the process, converting the graphic representation into a text.
- You will have to create a text file with a graphic representation of a random phrase.
- The program will have **one** argument being the name of the file created.
- The program must print this phrase in **normal text**.
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
### Usage
```console
student@ubuntu:~/ascii-art$ go build
student@ubuntu:~/ascii-art$ cat file.txt
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
student@ubuntu:~/ascii-art$ ./ascii-art file.txt
hello
student@ubuntu:~/ascii-art$
```

64
subjects/ascii-art.en.md

@ -0,0 +1,64 @@
## ascii-art
### Objectives
Ascii-art consists on receiving a `string` has an argument and outputting the `string` in a graphic representation of ASCII.
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
- It will be given a `banner` file with a specific graphical template representation of ASCII.
### Usage
```console
student@ubuntu:~/ascii-art$ go build
student@ubuntu:~/ascii-art$ ./ascii-art "hello"
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
student@ubuntu:~/ascii-art$ ./ascii-art "HeLlO"
_ _ _ _ ____
| | | | | | | | / __ \
| |__| | ___ | | | | | | | |
| __ | / _ \ | | | | | | | |
| | | | | __/ | |____ | | | |__| |
|_| |_| \___| |______| |_| \____/
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There"
_ _ _ _ _______ _
| | | | | | | | |__ __| | |
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
student@ubuntu:~/ascii-art$ ./ascii-art "1Hello 2There"
_ _ _ _ _______ _
_ | | | | | | | | ____ |__ __| | |
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
student@ubuntu:~/ascii-art$
```

26
subjects/ascii-color.en.md

@ -0,0 +1,26 @@
## ascii-art-color
### Objectives
You must follow the same [instructions](https://github.com/01-edu/public/ascii-art.en.md) as the first subject but with colors.
- The output should manipulate colors using **flags**, `-c=<color>`, in which `-c` is the flag and `<color>` is the color of choice.
- You should be able to specify which letter you want to be colored (use your imagination for this one).
- If the letter isn't specified, the whole phrase should be colored.
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Manipulation of colors on the terminal.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
- You may use the same `banner` file.

46
subjects/ascii-fs.en.md

@ -0,0 +1,46 @@
## ascii-art-fs
### Objectives
You must follow the same [instructions](https://github.com/01-edu/public/ascii-art.en.md) as the first subject but the second argument must be the name of the template.
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
### Usage
```console
student@ubuntu:~/ascii-art$ go build
student@ubuntu:~/ascii-art$ ./ascii-art "hello" standard
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
student@ubuntu:~/ascii-art$ ./ascii-art "hello" shadow
oooo oooo oooo
`888 `888 `888
888 .oo. .ooooo. 888 888 .ooooo.
888P"Y88b d88' `88b 888 888 d88' `88b
888 888 888ooo888 888 888 888 888
888 888 888 .o 888 888 888 888
o888o o888o `Y8bod8P' o888o o888o `Y8bod8P'
student@ubuntu:~/ascii-art$
student@ubuntu:~/ascii-art$
```

60
subjects/ascii-justify.en.md

@ -0,0 +1,60 @@
## ascii-art-justify
### Objectives
You must follow the same [instructions](https://github.com/01-edu/public/ascii-art.en.md) as the first subject but the representation should be formatted using the second argument, that can be:
- center
- justify
- align-left
- align-right
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
- You should build your one files with the templates you desire.
### Usage
```console
student@ubuntu:~/ascii-art$ go build
student@ubuntu:~/ascii-art$ ./ascii-art "hello" standard center
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There" standard align-right
_ _ _ _ _______ _
| | | | | | | | |__ __| | |
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
student@ubuntu:~/ascii-art$ ./ascii-art "hello" shadow center
oooo oooo oooo
`888 `888 `888
888 .oo. .ooooo. 888 888 .ooooo.
888P"Y88b d88' `88b 888 888 d88' `88b
888 888 888ooo888 888 888 888 888
888 888 888 .o 888 888 888 888
o888o o888o `Y8bod8P' o888o o888o `Y8bod8P'
student@ubuntu:~/ascii-art$
```

51
subjects/ascii-output.en.md

@ -0,0 +1,51 @@
## ascii-art-output
### Objectives
Ascii-art-output consists on receiving two strings. The first argument will be converted into a graphic representation of ASCII and written into a file named by using the second argument.
- In case the second argument is not present it should print the graphic representation.
This project will help you learn about :
- Client utilities.
- The Go file system(**fs**) API.
- Ways to receive data.
- Ways to output data.
- Manipulation of strings.
- Learning about the choice of outputs.
- Manipulation of structures.
### Instructions
- Your project must be written in **Go**.
- The code must respect the [**good practices**](https://github.com/01-edu/public/good-practices.en.md).
- It is recommended that the code should present a **test file**.
- You may use the same `banner` file.
### Usage
```console
student@ubuntu:~/ascii-art$ go build
student@ubuntu:~/ascii-art$ ./ascii-art "hello" banner.txt
student@ubuntu:~/ascii-art$ cat banner.txt
_ _ _
| | | | | |
| |__ ___ | | | | ___
| _ \ / _ \ | | | | / _ \
| | | | | __/ | | | | | (_) |
|_| |_| \___| |_| |_| \___/
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There" banner.txt
student@ubuntu:~/ascii-art$ cat banner.txt
_ _ _ _ _______ _
| | | | | | | | |__ __| | |
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
student@ubuntu:~/ascii-art$
```

28
subjects/good-practices.en.md

@ -0,0 +1,28 @@
## good practices
### [code](https://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118)
- Commenting and Documentation
- Consistent Indentation
- Avoid Obvious Comments
- Code Grouping
- Consistent Naming Scheme
- camelCase
- under_scores
- [**DRY**](https://thefullstack.xyz/dry-yagni-kiss-tdd-soc-bdfu) (Don't Repeat Yourself) or [**DIE**](https://thefullstack.xyz/dry-yagni-kiss-tdd-soc-bdfu) (Duplication is Evil) principle
- [**KISS**](https://thefullstack.xyz/dry-yagni-kiss-tdd-soc-bdfu) (Keep It Simple Stupid)
- [**YAGNI**](https://thefullstack.xyz/dry-yagni-kiss-tdd-soc-bdfu) (You Aren’t Gonna Need It)
- [**SOC**](https://thefullstack.xyz/dry-yagni-kiss-tdd-soc-bdfu) (Separation of Concerns)
- Avoid Deep Nesting
- Limit Line Length
- File and Folder Organization
- Consistent Temporary Names
- Separation of Code and Data
- Code Refactoring
### Go
- [**Go**](https://golang.org/doc/effective_go.html)
- [**gofmt**](https://golang.org/cmd/gofmt/)
- [**goimports**](https://godoc.org/golang.org/x/tools/cmd/goimports)
- [**foimports vs gofmt**](https://goinbigdata.com/goimports-vs-gofmt/)
Loading…
Cancel
Save