PicInch provides a simple way for a group of website members, such as a photography club, to share their photographs. The emphasis is on uncluttered presentation of images, organised into slideshows.
-
Contributors create simple slideshows. Each slide has a selection of title, photo and caption. Slides adjust in layout to match the content. There is a basic facility to edit and reorder slides.
-
Slideshows may be organised into topics, as defined by a curator. Topics may be defined in advance, or applied to existing slideshows. A topic can be viewed as a single slideshow, or as a page listing the individual contributions.
-
Sign-up is restricted to a pre-set list of members, suitable for a club.
-
Slideshows can be specified as publicly visible, or visible to website users, or hidden.
-
Individual photos can be added to a special topic “Highlights”, featured on the home page. It includes just the most recent highlights from each contributor.
-
The home page shows the most recent highlights and slideshows for each user. The number shown of each is configurable. A page for each contributor shows all their highlights and slideshows.
-
Sideshows can include videos as well as photos.
-
Written in Go and ready to be deployed to a virtual machine using Docker, for good performance and easy setup.
This is used at one photo club. I would like to work with another club, ideally in Scotland or the UK, to adapt it as needed for more general use. Contact [email protected].
For more information, including setup and configuration, see https://picinch.com.
Public page | Club home page | User's gallery | Edit slideshow |
---|---|---|---|
- Let's Go! - Alex Edwards This was a big help to get started, and PicInch copies much of the application structure that he suggests.
Go Packages
- alexedwards/scs HTTP session management.
- go-sql-driver/mysql MySQL driver.
- ilyakaznacheev/cleanenv Read configuration file and environment variables.
- jmoiron/sqlx SQL library extensions.
- julienschmidt/httprouter HTTP request router.
- justinas/alice HTTP middleware chaining.
- justinas/nosurf CSRF protection.
- microcosm-cc/bluemonday HTML sanitizer for user input.
JavaScript Libraries
- Bootstrap Toolkit for responsive web pages.
- jQuery For easier DOM processing and Ajax.
- Lightbox Overlay images on the current page.
- Popper Tooltip and popover positioning (used by Bootstrap).
Video processing uses FFmpeg.