# Biblioteca ### Command Line Library Management System ### Setup instructions 1. Sign into GitHub and create a new repository * Repository name: twu-biblioteca-yourname * Privacy level: Public * Don't check "Initialize this repository with a README" * Add .gitignore: None * Add a license: Apache License 2.0 2. Run 'git init' in the folder that was extracted from the downloaded .zip file, in order to initialize local repository. 3. Make a local commit * `$ git add -A` * `$ git commit -m “Initial commit”` * *Dont forget to add the hidden .idea folder, as it will make opening your project in Intellij easier.* 4. After you are done with the local commit, you can share your code with the world by pushing it to your GitHub. * `$ git remote add origin https://github.com/<YOUR-GITHUB-USERNAME>/twu-biblioteca-<YOURNAME>` * `$ git push origin master` 5. You can then open your code in Intellij * `Go to File > Open` (or Open Project) * Select the directory containing the code *DONE ! ### User stories #### Release No. 1 **Welcome Message** ``` As a customer, I'd like to see a welcome message when I start the application, So that I feel welcome and know that Biblioteca is available. ``` **List Books** ``` As a customer, I'd like to see a list of all library books after the welcome message appears, So that I can browse for books I might want to check-out. ``` *Assume that there is a pre-existing list of books. You don't need to support adding or removing books from the library.* **Book Details** ``` As a customer, I'd like the list of all books to include each book's author and year published, So that I can be confident that I have found the book I am looking for. ``` *The book listing should have columns for this information.* **Main Menu** ``` As a customer, I'd like to see a list of options and be able to choose one instead of automatically seeing the book list. ``` *For now, the only option should be 'List Books'. All future options should be added to this menu also.* **Invalid Menu Option** ``` As a customer, I'd like to be notified when I choose an invalid option with the message “Select a valid option!”, So that I can know when I need to re-enter my choice. ``` **Quit** ``` As a customer, I'd like to continue choosing options until I choose to 'Quit'. ``` **Checkout Book** ``` As a librarian, I'd like customers to be able to check-out a book. ``` *Checked out books should not appear in the list of all library books.* **Successful Checkout** ``` As a customer, I'd like to know that a book has been checked out by seeing the message “Thank you! Enjoy the book”. ``` **Unsuccessful Checkout** ``` As a customer, I'd like to be notified if the book I tried to check-out is not available by seeing the message, “That book is not available.”, So that I know that I need to select a different book or fix my spelling error. ``` **Return Book** ``` As a librarian, I'd like customers to be able to return a book, So that other customers can check that book out. ``` *Returned books should appear in the list of library books.* **Successful Return** ``` As a customer, I'd like to be notified if the book I am returning belongs to this library by seeing the message, “Thank you for returning the book.”, So that I know I returned the book to the right library. ``` **Unsuccessful Return** ``` As a customer, I would like to be notified if the book I am returning has not been added to this library by seeing the message, “That is not a valid book to return.”, So that I can return it to the correct library or fix my spelling error. ```