Skip to content

An app to keep track of and organize resources in Libraries. Built using skills needed for the AP CS A exam.

Notifications You must be signed in to change notification settings

dfn-slxxp/LibraryTracker

Repository files navigation

LibraryTracker

LibraryTracker-an app to keep track of and organize resources in Libraries. Built using skills needed for the AP CS A exam.

About Me

I'm Sebastian Waldman, Currently in Ms. Mouzakitis's Period 7 Annual Intro to CS class.

Features

  • Import important items commonly located in libraries via a CSV file
  • Import members of a library via a CSV file
  • Import each member's checkouts via a CSV file
  • Sorts Data by...
    • Items checked out longest
    • Items due soonest

Getting Started with LibraryTracker

Cloning the Repository

Clone this repository by running the following:

git clone https://github.com/dfn-slxxp/LibraryTracker.git

CSV Input Formats

For this tool, you will need 3 CSV files.

Items.csv

This file must be formatted in the following way (examples provided per type):

Type,Item Id,Name/Title,Author (only for Books), Type(Device + Disk)/Genre(Book)/Publisher(Newspaper)
Book,1,Shatter Me,Tahereh Mafi,Fantasy
Device,2,Lenovo Laptop,,Laptop
Newspaper,7,Before the Glow Fades: Figure Skating as Art,,NYT
Disk,6,KPOP Demon Hunters Soundtrack,,CD
  • Type: The Type of Item: Book, Device, Newspaper, or Disk
  • Item Id: Unique Item ID number. Cannot be the same as another item
  • Name: Name or Title of the Item
  • Author: This field is only for books. Name of Author
  • Misc Info:
    • For Books: Genre: "Fantasy", "Realistic", "Nonfiction", "Other"
    • For Devices: Type: "Laptop", "IPad", "Desktop", "Other"
    • For Disks: Type: "CD", "DVD", "Bluray", "Other"
    • For Newspapers: Publisher: "NYT", "LAT", "WSJ", "USA Today", "Washington Post", "Other"

Members.csv

This file must be formatted in the following way (examples provided)

ID,Name
0,Sebastian Waldman
1,Daniel Manita
5,Lucas Ou
  • ID: Unique Member ID. Cannot be repeated for multiple users.
  • Name: Name of the Member

Checkouts.csv

This file must be formatted in the following way (examples provided)

Member ID,Item ID,Checkout Date
4,1,20260101
4,2,20251228
  • Member ID: Member ID, same one used in Members.csv
  • Item ID: Item ID, same one used in Items.csv
  • Checkout Date: Date of Checkout, in YYYYMMDD format. For example, 1/28/2026 would be 20260128. Note that this is the same format the program outputs the date as

Using this Application using Gradle (Reccomended)

Building the Application with Gradle

  1. In the directory of the project, run
    ./gradlew build

Running the Application with Gradle

  1. In the directory of the project, run

    ./gradlew run
  2. You will then be prompted to enter File Paths to your CSV files. The files will default to the test files in "app/src/main/resources".

Using this Application manually using javac and java

Compiling the Application using javac

  1. In the directory of the project, run

    javac -d bin app/src/main/java/library/project/*.java app/src/main/java/library/project/Items/*.java

    This will compile the Java files into bin

  2. In the same directory, run

    cp app/src/main/resources/*.csv bin/

    This will copy the test CSVs into the bin directory as well. If you are using your own CSV files, run

    cp [Path to the folder containing your CSV files]/*csv bin

    This will copy your CSV files into bin

Running the Application using javac

  1. Simply run the Project's Librarian class using:
    java -cp bin library.project.Librarian

About

An app to keep track of and organize resources in Libraries. Built using skills needed for the AP CS A exam.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages