COPY-READY README.md QuickNotes – Java Console Notes App
QuickNotes is a simple, clean, object-oriented Java application that allows users to create, store, view, and manage notes from the terminal. Built with a modular structure and proper OOP principles (Services, Models, and a Main App runner).
Features
User authentication (login & basic validation)
Create text notes
View all notes
Organized Notebook structure
Clear separation of responsibilities using OOP
Project Structure
src/ • AuthenticationService.java – Handles login/authentication • Note.java – Base note model • TextNote.java – Child class for text notes • Notebook.java – Stores a list of notes • NoteService.java – Operations for adding & listing notes • QuickNotesApp.java – Main entry point for the application
bin/ contains compiled .class files (ignored using .gitignore)
How to Run
Compile javac -d bin src/*.java
Run java -cp bin QuickNotesApp
Example Flow
App launches
User logs in
User selects an action • Create a note • View notes • Exit
Notes stored in memory via Notebook
Technologies Used
• Java 20 • Core OOP (Inheritance, Encapsulation, Composition) • No external libraries
Learning Goals
• Practice real OOP concepts • Understand layered architecture • Build CLI apps with clean separation of concerns • Learn proper GitHub project structuring
Future Improvements
• Add file-based persistence • Add timestamps • Add search filters • Add categories/tags • Build GUI (JavaFX / Swing) • Convert into REST API (Spring Boot)