Photon is a lightweight, locally-run Java application that helps you organize and view your photos in a clean, Instagram-like grid layout. Built using JavaFX, it lets you import, and manage photos — all stored locally on your system.
- Features
- Technologies Used
- Prerequisites
- Installation
- Usage
- Project Structure
- Configuration
- Troubleshooting
- Contributing
- ✅ Import Photos: Import multiple images from your file system
- 🖼️ Grid Display: Display photos as thumbnails in a responsive 4-column grid
- 💾 Local Storage: Store imported photos in a local
photos/directory - 📁 Album Ready: Prepared infrastructure for collection/album support
- 🛠️ Clean Code: Built with modular, maintainable Java architecture
- 🔒 Privacy First: All data stored locally - no cloud dependency
- Java 17+ - Core programming language
- JavaFX - Modern UI framework
- JUnit 5 - Testing framework
- Maven - Build and dependency management
Before running Photon, ensure you have the following installed:
-
Java Development Kit (JDK) 17 or higher
-
Apache Maven 3.6+
- Download from Maven website
- Verify installation:
mvn --version
-
JavaFX SDK (if not bundled with your JDK)
- Download from OpenJFX website
-
Clone the Repository
git clone https://github.com/Hydra-Slayer/Photon.git cd Photon -
Build the Project
mvn clean install
-
Run the Application
mvn exec:java
-
Launch the Application
mvn exec:java
JavaFX opens a clean, modern window interface.
-
Import Photos
- Click the "Import Photos" button
- Select one or more image files from your computer
- Supported formats: JPG, JPEG, PNG, GIF, BMP
-
View Your Collection
- Photos are automatically copied to the local
photos/folder - Thumbnails appear in a responsive 4-column grid
- Click on any thumbnail for a larger preview
- Photos are automatically copied to the local
- JPEG/JPG
- PNG
- GIF
- BMP
- TIFF (planned)
Photon/
├── pom.xml # Maven configuration
├── photos/ # Auto-created photo storage directory
├── src/
│ ├── main/
│ │ └── java/
│ │ └── com/app/photon/
│ │ └── App.java # Main application entry point
│ └── test/
│ └── java/com/app/photon/
│ └── AppTest.java # Unit tests
├── .gitignore
└── README.md
Currently, Photon uses default settings. Future versions will include:
- Custom photo storage locations
- Grid layout preferences (2, 3, 4, or 6 columns)
- Theme selection (light/dark mode)
- Import quality settings
- OS: Windows 10+, macOS 10.14+, or Linux with desktop environment
- RAM: 512MB minimum, 1GB recommended
- Storage: 50MB for application + space for your photos
- Display: 1024x768 minimum resolution
Issue: Application won't start
Error: JavaFX runtime components are missingSolution: Install JavaFX SDK or use a JDK that includes JavaFX
Issue: Photos not importing Solution: Check file permissions and ensure photos directory is writable
Issue: Thumbnails not displaying Solution: Verify image file integrity and supported formats
- Create a new issue with:
- Your operating system
- Java version (
java --version) - Steps to reproduce the problem
- Error messages (if any)
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Add tests for new functionality
- Commit your changes
git commit -m 'Add amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
# Clone your fork
git clone https://github.com/yourusername/Photon.git
cd Photon
# Install dependencies
mvn clean install
# Run tests
mvn test
# Run the application in development mode
mvn exec:java- Follow Java naming conventions
- Write meaningful commit messages
- Add JavaDoc comments for public methods
- Thanks to the JavaFX community for excellent documentation
- Inspired by modern photo management applications
- Built with love for photographers and digital organization enthusiasts
Made with ❤️ by Hydra-Slayer
Star ⭐ this repository if you find Photon useful!