From 74b2c4b3c1ac6f06ab286176d0f82f9e14bdc8fd Mon Sep 17 00:00:00 2001 From: alex_mclean <116386669+EatSleepProgramRepeat@users.noreply.github.com> Date: Fri, 11 Apr 2025 23:21:25 -0400 Subject: [PATCH] dang i did good - made README.md --- README.md | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 52fb1ce..af1e07c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,105 @@ # CDPrintable -This program makes a label for your CD cases that has all of the track listings. It can print this info out for you. + +![GitHub License](https://img.shields.io/github/license/EatSleepProgramRepeat/CDPrintable?style=flat) +![GitHub Release](https://img.shields.io/github/v/release/EatSleepProgramRepeat/CDPrintable?style=flat) +![GitHub Issues](https://img.shields.io/github/issues/EatSleepProgramRepeat/CDPrintable?style=flat) +![GitHub Forks](https://img.shields.io/github/forks/EatSleepProgramRepeat/CDPrintable?style=flat) +![GitHub Stars](https://img.shields.io/github/stars/EatSleepProgramRepeat/CDPrintable?style=flat) +![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/EatSleepProgramRepeat/CDPrintable/test.yml?style=flat) + +CDPrintable is a lightweight, easy-to-use program for generating and printing labels with CD track listings for your CD collection. + +> [!NOTE]\ +> **This project is still in development.** There is a bunch of stuff that might not work, and some things that are planned but not implemented yet. Please bear with me because I am working alone on this project. + +## 🎯 Features +- 🔍 Automatically fetches and tables information from the MusicBrainz database. +- 🖨️ Generates a printable image with the track listings. +- 📦 Portable and easy to use on most desktop operating systems. +- 💱 Changeable user agents. +- 🧠 Saves configurations in a JSON file. + +## 🚀 Getting Started +### Prerequisites +- Java 22 or higher +- Internet connection (For gradle downloads and MusicBrainz API requests) + +### Installation + +There are releases that are provided on GitHub. I suggest using those, but feel free to build from source if you want to. If you download it, you can execute the following command on windows or linux: + +```bash +java -jar CDPrintable.jar +``` + +### Building from Source + +#### 1. Clone the repo (Linux & Windows): + +```bash +git clone https://github.com/EatSleepProgramRepeat/CDPrintable.git +cd CDPrintable +``` + +#### Build and run using Gradle (Linux) + +```bash +./gradlew build +cd build/libs +java -jar CDPrintable.jar # This may have a different name when generated by gradle. Find the right one. +``` + +#### Build and run using Gradle (Windows) + +```batch +./gradlew.bat build +cd build/libs + +@rem This may have a different name when generated by gradle. Find the right one. +java -jar CDPrintable.jar +``` + +## ✨ Usage + +1. Change the dropdown at the bottom of the screen to: + - 'CDStub' to search for a CD by its album name. + - 'Artist' to search for an artist by their name. + - 'Release' to search for a release (ex. a physical or digital album, etc.) by its name. +2. Type a query into the text box. +3. Click the search button. +4. Voilà! You should see a table of results. + +## ⚙️ Configuration + +### Settings Page + +The settings page contains many options such as user agent customization and printer font settings. +This page is not done yet, so expect more settings as the program develops. + +### Configuration File + +The configuration file is located in the users home directory in a subdirectory called 'CDPrintable'. + +The configuration file is a JSON file that contains the following fields: +- `userAgent`: The user agent that the program will use to make requests to the MusicBrainz API. +- `printerFont`: The font that the program will use to print the labels. +- `printerFontSize`: The font size that the program will use to print the labels. +- `userAgentEmail`: The email that the program will use to make requests to the MusicBrainz API. + TODO + +## 🛠️ Built With + +- [Java](https://www.java.com/en/) - The programming language used. +- [Gradle](https://gradle.org/) - Dependency Management. +- [Javax.Swing](https://docs.oracle.com/javase/8/docs/api/javax/swing/package-summary.html) - GUI framework. +- [MusicBrainz API](https://musicbrainz.org/doc/MusicBrainz_API) - The API used to fetch data. +- [Google Gson](https://github.com/google/gson) - JSON parsing. + +## 📦 Roadmap +- [ ] Add more settings to the settings page. +- [ ] Printer communication. +- [ ] Search for albums, releases, and CDStubs by artists. + +## 📜 License + +This project is licensed under the GNU GPL-3.0 License - see the [LICENSE](LICENSE) file for details. \ No newline at end of file