Skip to content
/ piyp Public

πŸ“· A mobile/desktop application to organize your photo library from any web source (webdav for now)

Notifications You must be signed in to change notification settings

PIYP-app/piyp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PIYP - Photos In Your Pocket

A modern, cross-platform mobile and desktop application to organize your photo library from any web source (WebDAV support). Built with Flutter for seamless multi-platform experience.

✨ Features

  • πŸ“± Cross-platform: Runs on iOS, Android, macOS, Windows, and Linux
  • 🌐 WebDAV Support: Connect to any WebDAV server (Nextcloud, ownCloud, etc.)
  • πŸ–ΌοΈ Smart Gallery: Grid view with date-based organization
  • πŸ—‚οΈ EXIF Data: Automatic extraction and display of photo metadata
  • πŸ“ GPS Support: View photo locations on an interactive map
  • 🎬 Video Support: Play and organize videos alongside photos
  • πŸ’Ύ Local Caching: Efficient thumbnail generation and caching
  • πŸ”„ Auto-sync: Automatic synchronization with remote sources
  • πŸŒ™ Dark/Light Theme: Follows system theme preferences
  • πŸš€ Modern UI: Clean, Material Design 3 interface

πŸš€ Getting Started

Prerequisites

First install the required tools:

Development Setup

  1. Clone the repository

    git clone https://github.com/yourusername/piyp.git
    cd piyp
  2. Install development tools

    mise plugins install android-sdk https://github.com/Syquel/mise-android-sdk.git
    mise install java yq jq  # Install first as they are required by other tools
    mise install
  3. Configure Android (if building for Android)

    sdkmanager "platform-tools" "build-tools;33.0.3" "platforms;android-33"
    yes | flutter doctor --android-licenses
  4. Install dependencies

    flutter pub get
  5. Generate database code

    dart run build_runner build

Running the App

flutter run

For specific platforms:

flutter run -d macos     # macOS
flutter run -d windows   # Windows
flutter run -d linux     # Linux
flutter run -d chrome    # Web (for development)

πŸ“± Setting Up Your Photo Source

  1. Launch PIYP and navigate to Settings
  2. Add WebDAV Server with your credentials:
    • Server Name: Give it a memorable name
    • Server URL: Your WebDAV endpoint (e.g., https://cloud.example.com/remote.php/dav/files/username/)
    • Username: Your WebDAV username
    • Password: Your WebDAV password
    • Folder Path: Optional subfolder path
  3. Test Connection and start syncing your photos!

Supported WebDAV Providers

  • βœ… Nextcloud
  • βœ… ownCloud
  • βœ… Box.com
  • βœ… pCloud
  • βœ… Any standard WebDAV server

πŸ› οΈ Development

Project Structure

lib/
β”œβ”€β”€ main.dart              # App entry point
β”œβ”€β”€ router.dart           # Navigation configuration
β”œβ”€β”€ database/             # Database schema and queries
β”œβ”€β”€ classes/              # Data models
β”œβ”€β”€ settings/             # Settings and configuration
└── [other_features]/     # Feature-specific modules

Building for Production

Android APK:

flutter build apk --release

iOS App:

flutter build ios --release

Desktop Apps:

flutter build macos --release    # macOS
flutter build windows --release  # Windows
flutter build linux --release    # Linux

πŸ› Troubleshooting

Android Emulator Setup

Create and launch an Android emulator:

sdkmanager "system-images;android-33;google_apis;x86_64"
avdmanager create avd --name Pixel_8_Pro_AVD --package "system-images;android-33;google_apis;x86_64" --device "pixel_8_pro"
flutter emulators --launch Pixel_8_Pro_AVD

Gradle Issues

If you encounter Gradle-related errors:

rm -rf ~/.gradle/ ~/.pub-cache
flutter clean
flutter pub get

Flutter Installation

For Flutter installation issues, refer to:

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Flutter team for the amazing framework
  • WebDAV community for the protocol specification
  • All contributors who make this project better

About

πŸ“· A mobile/desktop application to organize your photo library from any web source (webdav for now)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •