Inspiration ⭐
We spoke with Jeff Haynie, founder of Agentuity, about his experience developing Text-Based User Interface applications. He inspired us to tackle the problem of unorganized folders in the terminal, which can make it difficult to find a specific file when its name is not distinct enough.
What it does ⚙️
It provides the end-user with a straightforward way to view and organize the contents of any folder. Files and folders can be sorted and displayed based on different attributes such as name, size, last modified time, or type which in turn makes it easy to quickly find items from the command line.
How we built it 🛠️
We built the project in Java using the Lanterna library to create a Text-Based User Interface (TUI). Users can input a folder path, select a sorting method (name, size, or date), and view results in a dynamic table. The program features input fields, sorting options via radio buttons, a table display, and buttons for sorting or exiting. Sorting is handled with Java’s Comparator interface, and event-driven programming updates the table based on user interactions, integrating file I/O, sorting logic, and the terminal UI into a cohesive tool.
Challenges we ran into ⛰️
Our biggest challenge has been managing concurrent work among the four of us. Given our tight schedule, it’s difficult to divide tasks in a way that fully leverages each group member’s technical skills.
Accomplishments that we're proud of 🏆
We’re proud to have built a fully interactive terminal-based file sorter from scratch using Java and the Lanterna library. The project successfully integrates multiple sorting methods, providing a smooth, responsive user experience.
What we learned 📖
This project gave us our first experience working with a Text-Based User Interface (TUI) library, allowing us to go beyond the limitations of the default command-line interface and build a more interactive and user friendly terminal application.
What's next for File Organizer 🚀
To make it even easier for users to find the files they’re looking for, the next step is to integrate file summarization. By analyzing a file’s contents with a large language model (LLM), the tool could generate a short, human-readable summary for each file. This would give users a quick understanding of what a file contains, even when filenames are unclear or ambiguous, this is especially useful when working with large directories full of poorly labeled documents.

Log in or sign up for Devpost to join the conversation.