Initial commit for WordsSorting

This commit is contained in:
BackIsBachus
2021-05-05 15:34:09 +02:00
commit d9cd489a0e
11 changed files with 833 additions and 0 deletions

29
README.md Normal file
View File

@@ -0,0 +1,29 @@
# Words Sorting
Words Sorting is a little project done as part of a coding test exercise.
This is a little CLI tool developped in Visual C++ for Windows and that requires Boost 1.76.0 to compile.
## Features
This tool takes a list of words in a file as en input, sorts them in alphabetical order and returns them in an `out.txt` file. It is also possible to ask the tool to use a reverse ordering and/or to delete duplicates.
## Usage
The usage is very simple you can use this as a command line input.
```WordsSorting --reverse --unique /path/to/input.txt```
This tool also has a `--help` option to remind you how it works.
## Posible evolutions/limitations
Because of the recommended time frame here are possible improvements or limitations for this projects
* Integrate a unit testing suite: this was not done because I have never integrated a unit test suite in a brand new project like this so it would have taken me too much time
* Add an option to specify an output file instead of just using the currently hardcoded `out.txt`
* Define a way to filter/validate in input "words" after qualifying what counts as a word and what processing is allowed
* What to do with leading/trailing spaces?
* Are we supporting only a single word per line or are we accepting small sentences?
* Gracefully support non-ascii/non-basic characters: this was done for simplicity but currently there is no graceful support for accents (for example consider that `é` is right after `e` and not far at the end of the alphabet)
* Gracefully support other alphabets: only the latin alphabets with basic encoding is currently supported
* Improve the repository setup as I am fairly certian this is not the celanest way to present a C++ project but it is not something I do oftent at all on my time