paolobenve / myphotoshare

MOVED TO GITLAB! --- A Web 2.0 Photo Gallery Done Right via Static JSON, Dynamic Javascript and a bit of php for sharing
15 stars 0 forks source link
album face-detection gallery photos social-media video

WARNING: This project has moved to gitlab.com

Set your origin to https://gitlab.com/paolobenve/myphotoshare

No more development will be carried on here on github.com


MyPhotoShare v. 3.4beta19 (May 22, 2018)

A Web Photo Gallery Done Right via Static JSON & Dynamic Javascript

by Jason A. Donenfeld (Jason@zx2c4.com), Jerome Charaoui (jerome@riseup.net) Joachim Tingvold (joachim@tingvold.com), Paolo Benvenuto (paolobenve@gmail.com), Pierre Métras (p.metras@videotron.ca)

Description

MyPhotoShare is an open source web photo gallery aimed at sleekness and speed. It works over directory structures rather than esoteric photo database management software. Everything it generates is static, which means it's extremely fast.

It permits browsing the media by folder, date and geotags.

Content (albums and media files) can be shared over some popular social plaforms.

MyPhotoShare is a Jason A. Donenfeld's photofloat fork, enriched by Jerome Charaoui's patches permitting showing videos, Paolo Benvenuto's and Pierre Métras's following development.

Check out a demo!

Screenshot

What's great in version 3.4

Read more

Features

Gallery

For Photographers

Mobile Friendly

Great User Experience

Social

Performance

And More...

Community

Report bugs through GitHub Issues.

You can fork MyPhotoShare and submit pull requests, too! We're open to adding more features!

If you have any questions, feel free to contact the MyPhotoShare community via our mailing list/discussion group.

How It Works

MyPhotoShare consists of two segments – a Python script and a JavaScript application.

The Python script scans a directory tree of images, whereby each directory constitutes an album. It then populates a second folder, known as the cache folder with statically generated JSON files and thumbnails. It writes an options.json file too in html root folder, putting inside it all the options from default config file or user config file. The scanner extracts metadata from EXIF tags in JPEG photos and other data from videos or album.ini user defined file in albums. MyPhotoShare is smart about file and directory modification time, so you are free to run the scanner script as many times as you want, and it will be quite fast if there are few or zero changes since the last time you ran it.

The JavaScript application consists of a single index.php file with a single scripts.min.js and a single styles.min.css. It fetches the options.json file and the statically generated JSON files and thumbnails on the fly from the cache folder to create a speedy interface.

MyPhotoShare features share buttons, and PHP permits to pass the shared image/video/album to social media:

It is, essentially, a slick and fast, minimal but still well-featured photo gallery app on the net, suitable for sharing your media with your friends.

Performance of scanner

As a term of comparizon, on my medium-sized pc, with the images on a NFS mounted NAS partition: