Credits
Built With
- Go - API and server-side tile rendering
- Canvas (tdewolff) - vector rendering in Go
- SQLite 3 (zombiezen) - fast single-file database
- Vue 3 - frontend framework
- BalmUI - Material UI components
- OpenLayers - in-browser tiled image rendering
- geoBoundaries for geographic boundary data used for reverse geolocation
- more Go libraries
- more npm libraries
Special Thanks
- Open Images Dataset for the sample image dataset
- OpenSeadragon tiled image rendering library used previously
- sams96/rgeo for previous reverse geolocation implementation and inspiration
- Best-README-Template and readme.so for readme ideas
Third Party Libraries
Thanks to all the authors of the third party libraries used in this project.
API
mod
module photofield
go 1.21
require (
github.com/EdlinOrg/prominentcolor v1.0.0
github.com/alecthomas/assert/v2 v2.2.2
github.com/alecthomas/participle/v2 v2.0.0
github.com/deepmap/oapi-codegen v1.8.2
github.com/dgraph-io/ristretto v0.1.2-0.20230929213430-5239be55a219
github.com/docker/go-units v0.4.0
github.com/felixge/fgprof v0.9.1
github.com/gammazero/deque v0.2.1
github.com/go-chi/chi/v5 v5.0.4
github.com/go-chi/cors v1.2.0
github.com/go-chi/render v1.0.1
github.com/goccy/go-yaml v1.7.17
github.com/golang-migrate/migrate/v4 v4.15.0-beta.1
github.com/golang/geo v0.0.0-20230421003525-6adc56603217
github.com/gosimple/slug v1.10.0
github.com/grafana/pyroscope-go v1.1.0
github.com/hako/durafmt v0.0.0-20200605151348-3a43fc422dd9
github.com/imdario/mergo v0.3.13
github.com/joho/godotenv v1.3.0
github.com/karrick/godirwalk v1.15.6
github.com/kelindar/intmap v1.1.0
github.com/lpar/gzipped v1.1.0
github.com/matoous/go-nanoid/v2 v2.0.0
github.com/mostlygeek/go-exiftool v0.0.0-20190130212521-a0e5de16f760
github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9
github.com/peterstace/simplefeatures v0.44.0
github.com/pixiv/go-libjpeg v0.0.0-20190822045933-3da21a74767d
github.com/prometheus/client_golang v1.11.0
github.com/prometheus/client_model v0.2.0
github.com/rjeczalik/notify v0.9.3
github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd
github.com/sheerun/queue v1.0.1
github.com/smilyorg/tinygpkg v0.2.1
github.com/tdewolff/canvas v0.0.0-20200504121106-e2600b35c365
github.com/x448/float16 v0.8.4
golang.org/x/exp v0.0.0-20231108232855-2478ac86f678
golang.org/x/image v0.0.0-20191214001246-9130b4cfad52
golang.org/x/sync v0.6.0
modernc.org/sqlite v1.32.0
zombiezen.com/go/sqlite v0.13.1
)
require (
github.com/ByteArena/poly2tri-go v0.0.0-20170716161910-d102ad91854f // indirect
github.com/ajstarks/svgo v0.0.0-20200320125537-f189e35d30ca // indirect
github.com/alecthomas/repr v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/buger/jsonparser v1.0.0 // indirect
github.com/cespare/xxhash/v2 v2.1.1 // indirect
github.com/dsnet/compress v0.0.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/fatih/color v1.9.0 // indirect
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/gddo v0.0.0-20210115222349-20d68f94ee1f // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gosimple/unidecode v1.0.0 // indirect
github.com/grafana/pyroscope-go/godeltaprof v0.1.6 // indirect
github.com/hashicorp/errwrap v1.0.0 // indirect
github.com/hashicorp/go-multierror v1.1.0 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 // indirect
github.com/klauspost/compress v1.17.3 // indirect
github.com/lucasb-eyer/go-colorful v1.0.3 // indirect
github.com/mattn/go-colorable v0.1.9 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/ncruces/go-strftime v0.1.9 // indirect
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
github.com/oliamb/cutter v0.2.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/common v0.26.0 // indirect
github.com/prometheus/procfs v0.6.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/tdewolff/minify/v2 v2.7.1-0.20200112204046-70870d25a935 // indirect
github.com/tdewolff/parse/v2 v2.4.2 // indirect
github.com/wcharczuk/go-chart v2.0.2-0.20191206192251-962b9abdec2b+incompatible // indirect
go.uber.org/atomic v1.7.0 // indirect
golang.org/x/sys v0.22.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gonum.org/v1/plot v0.0.0-20190410204940-3a5f52653745 // indirect
google.golang.org/protobuf v1.26.0 // indirect
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
modernc.org/libc v1.55.3 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.8.0 // indirect
modernc.org/strutil v1.2.0 // indirect
modernc.org/token v1.1.0 // indirect
)
UI
json
{
"name": "photofield",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"@fontsource/roboto": "^4.5.7",
"@unhead/vue": "^1.11.10",
"@vitejs/plugin-vue": "^1.10.2",
"@vueuse/core": "^11.1.0",
"@vueuse/router": "^11.1.0",
"balm-ui": "^10.9.0",
"copy-image-clipboard": "^1.0.1",
"date-fns": "^2.28.0",
"deep-iterator": "^1.1.0",
"fast-deep-equal": "^3.1.3",
"kalmanjs": "^1.1.0",
"ol": "^6.15.1",
"plyr": "^3.7.2",
"qs": "^6.11.0",
"swrv": "^1.0.0-beta.8",
"throttle-debounce": "^5.0.0",
"vue": "3.3.7",
"vue-concurrency": "^4.0.1",
"vue-multiselect": "^3.0.0-beta.1",
"vue-router": "^4.1.5"
},
"devDependencies": {
"eslint": "^8.19.0",
"eslint-plugin-vue": "^9.2.0",
"rollup-plugin-visualizer": "^5.6.0",
"vite": "^2.9.14",
"vite-plugin-compression": "^0.5.1"
}
}