Based on previous work by echocat
You have to implement an abstracted and simple application to manage a library of books and magazines.
-
You have 1.5 hours for this Kata - not a minute longer.
If you reach this time limit stop your work immediately. It is an important part of the kata to respect the time limit.
-
There are no restrictions on how to use the provided time. If you want to code the entire time or take breaks, etc. you are free to.
-
This is a real world situation. You are allowed to consult the Internet, import any package you like, call a friend, et
BUT: You are not allowed to do pair programming. AND If you have already done this kata before, don't review your previous implementation or steal code from it.
-
Develop your code based using Go v1.18.x
-
Keep the following priorities in mind while you implementing - in the mentioned order:
- Code quality
- Readability
- Feature Set
- Test Coverage
-
Given resources:
Hint: There is a reason why there are so many books and authors with umlauts.
authors.csv
: Contains authors with itsemail
,firstName
andlastName
.books.csv
: Contains books with itstitle
,description
, one or moreauthors
and anisbn
.magazines.csv
: Contains magazines with itstitle
, one or moreauthors
, apublishedAt
and anisbn
.
-
Your software should read all data from the given CSV files in a meaningful structure.
-
Print out all books and magazines (could be a GUI, console, …) with all their details (with a meaningful output format).
Hint: Do not call
printBooks(...)
first and thenprintMagazines(...)
;-) -
Find a book or magazine by its
isbn
. -
Find all books and magazines by their
authors
’ email. -
Print out all books and magazines with all their details sorted by
title
. This sort should be done for books and magazines together.
Hint: Optional means optional.
-
Write Unit tests for one or more methods.
-
Implement an interactive user interface for one or more of the Main tasks. (GUI or CLI is fine)
-
Add a book and a magazine to the data structure of your software and export it to a new CSV files.
- Get the code: Fork this repository, and clone it.
- Edit go.mod
module
directive to point to your fork. - Start the timer and start working on the kata.
- Discuss your solution.
- Repeat this kata again in a few days, weeks or next month.
make start
make test
See LICENSE file.