Sprint 6 Challenge

オープン
#8 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
java
領域
backend, cli, database

調査の方向性

まずモデルとmainメソッドのエントリーポイントを定義し、その後、要件で説明されているアクセスクラス、サービス層のインターフェース、インメモリデータベースを計画します。サービス層をユニットテストし、貸し出し、返却、検索、利用可能性、延滞料金の受け入れに関する受け入れ基準が満たされていることを確認します。

索引モデルが issue の本文から書いたものです。

説明

🎯 Topic Programming Fundamentals 🏕 Priority Mandatory 📅 Sprint 6 🦑 Size Large Core

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.

主要言語
言語のデータがありません
スター
1
フォーク
11
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

CodeYourFuture/Module-Java のほかの issue

CodeYourFuture/Module-Java の issue をすべて見る

似ている issue

Backend & API Design の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。