CodeYourFuture / CodeYourFuture/Module-Java

Sprint 6 Challenge

Offen
#8 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
🎯 Topic Programming Fundamentals 🏕 Priority Mandatory 📅 Sprint 6 🦑 Size Large Core
Vorherrschende Sprache
Keine Sprachdaten
Sterne
1
Forks
11
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

# Sprint Challenge

**The code you write for this challenge is mandatory homework and should be completed and sent in a PR for review before class.**

## Requirements

### Overview

Create a library system for managing book borrowing and returns.

### Acceptance Criteria

Ability to:
- Save new books
- Validate against duplicates
- New book saved to database (in memory or text file)
- Borrow a book
- Validate if it's available to borrow
- Start with a fixed borrow period (maybe 1 month) and optionally refactor later to be variable
- Update database record to set that the book is now borrowed and hence not available for someone else to borrow
- Should include a borrow / return date
- List the books currently borrowed by a user
- Actively borrowed books only, not ones that have been returned
- Return a book
- If it's being returned late report that the borrower should be fined £1 per day late
- Update database record to set that the book has been returned and hence can now be borrowed again
- Search for a book by title or author to see if it's available to borrow or not
- Present sensible responses for the cases:
- Book exists and can be borrowed
- Book exists but is already borrowed by someone else
- Book does not exist

### Code Quality

- Tiered architecture used with an in memory database (or you can write to a text file, your choice!) and console used as the presentation layer
- Interfaces used in service layer and DI used throughout
- Code clearly documented and unit tested!

### Developer Guidance (deliberately limited!)

- Think about the models you'll want first, and what data you'll need to store in order to meet the above criteria
- Think about how to save the data in a format (using appropriate data structures) that you'll be able to read and write to → the internet can help here!
- Create an access class responsible for reading and writing to the 'database'
- Create a suitable service layer using interfaces that you call from a main method to perform the library operations detailed in the acceptance criteria
- Make sure the service layer is unit tested

### Submission & Review

Fork the coursework repo to your own GitHub account.
Make regular small commits with clear messages.
When you are ready, open a Pull Request to the CYF repo. Make sure you fill in the PR template provided.
A volunteer will review your submission and send you feedback.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.