You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+39-32
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,49 @@
1
1
# WIP
2
2
3
-
This is a work in progress and not all functionalities may function correctly (or even be implemented).
3
+
This is a work in progress. Basic functionality has already been implemented, but there are a few things I'm planning to do:
4
+
5
+
- coloured output with --colour option to control it
6
+
- time rush mode (as many correct answers in given time)
7
+
- various feedback options (to replace boring "Correct" and "Incorrect" messages)
8
+
- GitLab & GitHub CI integration
4
9
5
10
# practicestuff
6
11
7
12
**practicestuff** is a CLI app designed to help you practise skills by asking questions and checking your answers. At the end, you'll see a number of correct answers, as well as some statistics. You can stop early by pressing `Ctrl+C`.
8
13
9
14
The application should work on all platforms.
10
15
11
-
List of skills:
16
+
Current list of skills:
12
17
13
18
- powers of a number
14
19
- multiplication table (times table)
15
-
- doomsday algorithm (not yet implemented)
20
+
- doomsday algorithm
21
+
22
+
## Installation
23
+
24
+
To install the application, you need cargo. Then, run:
25
+
26
+
```bash
27
+
cargo install practicestuff
28
+
```
29
+
30
+
## Usage
31
+
32
+
If you're fine with the defaults, choose a skill to practise (e.g., powers) and simply run:
33
+
34
+
```bash
35
+
practicestuff powers
36
+
```
37
+
38
+
You'll be presented with 20 questions and at the end you'll see how it went. If you don't like the defaults, you can adjust some settings. To display configuration options use help:
39
+
40
+
```bash
41
+
# General configuration options and available commands/skills
Allows to practise multiplications. Factors' range is configurable (default: 1-10 (regular times table)).
37
68
38
-
# Development
39
-
40
-
## Initial assumptions
41
-
42
-
- User has to choose a mode (skill) and optionally some flags/settings
43
-
- User is presented with a number of questions for certain skill and has to type a correct answer
44
-
- User should be able to quit at any time
45
-
- Some statistics should be presented (accuracy, response time, overall time)
46
-
- There should be a help flag available
47
-
- Argument parsing should be done without `clap` or any other library
48
-
- There should be some options to be set:
49
-
- Option to set number of questions (including endless mode)
50
-
- Option to show current accuracy between questions (default: true). Overall accuracy is presented at the end nevertheless
51
-
- Option to exit early
52
-
- Option to change behaviour on incorrect answer: continue to next question, show correct answer and continue, repeat
53
-
- It should be relatively easy to add new skills
54
-
- All skills should be configurable
55
-
56
-
## Current TODO
69
+
### Doomsday algorithm
57
70
58
-
### Doomsday
71
+
Allows to practise calculating the day of the week for a given date. Year range is configurable. By default, the application presents questions with dates ranging from ~1900 to ~2100, with a slight chance to go beyond. When either lower or upper limit is set, the date is picked randomly with equal probability for each year.
59
72
60
-
- help & usage prompts
61
-
- question generation w/ options
62
-
- tests
73
+
# Rationale
63
74
64
-
### Improvements
75
+
I created this simple app because I wanted to learn and practice the Doomsday algorithm. Later I thought that it might be cool not to limit the app to just one skill, but allow extensible architecture. I also didn't want to use any external libraries for argument parsing, so I implemented that myself as well.
65
76
66
-
- coloured output (termcolor?) with --no-color option
67
-
- additional mode (as many answers in given time)
68
-
- multiple texts for "correct" and "incorrect" answers
69
-
- gitlab & github CI
70
77
71
-
##What's next & bug reports
78
+
# What's next & bug reports
72
79
73
80
The application in its current state suits my needs, but I'm open for proposals, either for new skills to practise or more configurability. If you feel that the app lacks something, feel free to open an issue or a PR! I'd be more than happy.
0 commit comments