To Do:
Immersive Light Field Video with a Layered Mesh Representation
1.0 Upload Images, Access with Search & Tagging, Download ready-for-web.
2.0 Multiple Contributors & Search Suggestions
3.0 Dark Mode, Map Search, Instant Results
4.0 Video & Filtering by Tag / Photographer
5.0 Collection Views, Placements & Social Media Integration, Agency Accounts
classDiagram
class TypesOfCollectionView {
+ Home
+ NamedCollections
+ NestedNamedCollectionsAndSearchResultswithCollectionsinthem
+ SearchAndFilterResults
+ DetailView
}
class Home {
+ Same breakdown as favorited
+ Recently
+ Nested date filter here
+ In Your Location
+ Nested location filter here
}
class NamedCollections {
+ CollectionTitle
+ Description
+ Tags
}
class NestedNamedCollectionsAndSearchResultswithCollectionsinthem {
+ Dropdowntoselectfromnestedcollections
+ Otherthanthathomeisjustaglorifiedbigunnamedcollection/searchview
+ Clickonatagonthehomepage
+ Suggestedtagsshowupinthesidebarwhenyouscrolldown
}
class SearchAndFilterResults {
+ Searchtermshowsascollectiontitle
+ CreateCollectionButton
+ And/OrtogglesforfiltersAndsearchresults
+ SearchtimeAndresultnumbers
}
class DetailView {
+ Zooms-Insospeak
+ File
+ Description
+ Location
+ Tags
+ DownloadButton
+ ShareLink
+ ShowCollectionsButton
+ OtherAngleButton
+ RelatedButton
}
classDiagram
class Excludes_Includes_newsearches{
+ side bar
+ ads
+ removes content
}
class Search_controls{
+ side bar
}
class Sort_Bar{
+ top of collection grid
+ near title of collection
}
class Sorts_view_Settings{
+ top heading section of page
+ subsearch
+ resorts content
}
class Date_Made{
+ Oldest
+ Newest
+ Closest to given date
}
class Location{
+ Nearest
+ Farthest
+ From me or from given address
}
class Creator_Or_Camera{
+ Multiselect specific creators
+ Multiselect camera/device types
}
class Tag_Description_Subsearch{
+ MultiSelect tags
+ Multiselect your own saved search terms
}
class Popularity{
+ Favorited
+ By you
+ By creator/uploader
+ By your team
+ By everyone
+ Downloaded/Used
+ Same breakdown as favorited
+ Recently
+ In Your Location
+ Viewed/Opened
+ Same breakdown
}
class Season{
+ User Current Season By Default
+ Option to Pick Your Own Season
}
class Genre_Tagged_by_AI{
+ Popular Stock Imagery type categories
+ AnglePerspective
+ Aerial
+ On Foot
+ Unique/Macro
+ Plants
+ Landscape
+ Park
+ People
+ By Group size
+ Portrait
+ Group
+ Event
+ Public
+ By Type
+ Professional
+ Outdoors
+ Social
+ Buildings
+ Facade
+ Skyline
+ Infrastructure
+ Automotive
+ Road
+ Plane
+ Airport
+ Bridge
+ Etc.
}
class Types_of_Collection_View{
+ Home
+ Dropdown to select from nested collections
+ Suggested tags show up in the sidebar when you scroll down
+ Named Collections
+ Collection Title
+ Description
+ All Tags in a set are listed
+ Nested Named Collections_Search_Results
+ graphic dropdown from the title
+ Search_Filter_Results
+ Search term shows as collection title
+ Create Collection Button/Modal in the top corner
+ And/Or toggles for filters search results
+ Shows search time result numbers
}
class Detail_View{
+ semitransparent modal
+ asset sort of just zooms in and gets bigger when selected
+ Different detail views for Images, Videos, and Placements
+ Properties All Assets Have
+ File
+ Description
+ Location
+ Tags
+ Buttons All Detail Views Have
+ Download Button
+ Share Link
+ Show Collections Button
+ Other Angle Button
+ Related Button
+ Types of Detail View
+ Images
+ Can Zoom To Full Quality
+ PNGs aren't shown full screen
+ Vector images too
+ Video
+ Full Screen
+ Placements
+ Platform
+ Placement
+ Approval if admin
+ Link to actual post
+ Long Term
+ plug into social media analytics
+ email platforms
+ Shopify catalog sales data
+ clear view of which media assets
+ resonate best with our audiences
+ sell best to our customers
}
graph TD
A[Search Bar] --> B[Excludes]
A --> C[Includes]
A --> D[New Searches]
E[Sort Bar]--> F[Sorts]
E --> G[View Settings]
F --> H[Date Made]
H --> I[Oldest]
H --> J[Newest]
H --> K[Closest to given date]
F --> L[Location]
L --> M[Nearest]
L --> N[Farthest]
L --> O[From me or from given address]
F --> P[Creator Or Camera]
P --> Q[Multi-select specific creators]
P --> R[Multi-select cameradevice types]
F --> S[Tag/Description/Sub-Search]
S --> T[Multi-select tags]
S --> U[Multi-select your own saved search terms]
F --> V[Popularity]
V --> W[Favorited]
W --> X[By you]
W --> Y[By creator/uploader]
W --> Z[By your team]
W --> A1[By everyone]
V --> B1[Downloaded/Used]
B1 --> C1[Same breakdown as Favorited]
B1 --> D1[Recently]
D1 --> E1[Nested date filter here]
B1 --> F1[In your location]
F1 --> G1[Nested location filter here]
V --> H1[Viewed/Opened]
H1 --> I1[Same breakdown]
F --> J1[Season]
J1 --> K1[User current season by default]
J1 --> L1[Option to pick your own season]
F --> M1[Genre Tagged by AI]
M1 --> N1[Popular Stock Imagery type categories]
N1 --> O1[Angle & Perspective]
O1 --> P1[Aerial]
O1 --> Q1[On Foot eye-level]
O1 --> R1[Unique/Macro]
N1 --> S1[Plants]
S1 --> T1[Landscape]
S1 --> U1[Park]
N1 --> V1[People]
V1 --> W1[By Group size]
W1 --> X1[Portrait]
W1 --> Y1[Group]
W1 --> Z1[Event]
W1 --> A2[Public]
V1 --> B2[By Type]
B2 --> C2[Professional]
B2 --> D2[Outdoors]
B2 --> E2[Social]
N1 --> F2[Buildings]
F2 --> G2[Facade]
F2 --> H2[Skyline]
N1 --> I2[Infrastructure]
I2 --> J2[Automotive]
I2 --> K2[Road]
I2 --> L2[Plane]
I2 --> M2[Airport]
I2 --> N2[Bridge]
graph TD
Home("Home is basically a collection view with nested collections in it.") -->|Choose one of the nested collections| Nested_Collections("Dropdown to select from nested collections (aka other public lander galleries) in Collection Title")
Nested_Collections -->|Options| Dropdown("Dropdown to 3 options: Denver, Aspen, and a user's city")
Dropdown -->|User's City| Email_Capture("Email capture dialog after they type in their city to add them to a waitlist for their city")
Email_Capture -->|Continue| Billing("Billing page to pre-sell them")
Home -->|Tag| Search("Click on a tag on the home page (unlike a named collection) opens a whole new search for that tag")
Home -->|Scroll| Suggested_Tags("Suggested tags show up in the sidebar when you scroll down")
Nested_Collections -->|Named Collection| Collection_Title("Collection Title instead of Colorado Springs in it’s best light")
Collection_Title -->|Description| Description
Collection_Title -->|Tags| Tags("All Tags in a set are listed, clickable to filter the assets shown below")
Search -->|Create Collection| Create_Collection("Asks title (auto fills with search term), description, tags, etc.")
Search -->|Search Within| Filters("And/Or toggles for filters & search results")
Search -->|Search Time & Result Numbers| Time_Result("Shows search time & result numbers")
graph TD
A[mobile friendly toggle] --> B[Images should have two states on mobile]
B --> C[two taps to open image/collection]
B --> D[three-dot dropdown on long hold]
D --> E[sort]
A --> F[3 new buttons on top bar]
F --> G[Invite]
G --> H[add team members]
G --> I[add contractors/clients]
G --> J[refer a new subscriber]
F --> K[Help]
K --> L[tutorials]
F --> M[Produce]
M --> N[track number of productions used]
M --> O[reset on Jan 1st]
A --> P[Select button]
A --> Q[Sidebar AND/OR search results toggle control]
A --> R[Image hover should have smaller text]
R --> S[overflow rules for long tags]
R --> T[open image/collection buttons]
T --> U[top 3/4 tag text area open image]
T --> V[bottom 1/4 open collection]
Q[Tutorial] --> W[Teach-Yourself-Option]
W --> X[Video & javascript tutorial options]
X --> Y[downloading images]
X --> Z[organizing favorites]
X --> AA[finding/searching]
X --> BB[related & other angles buttons]
X --> CC[exploring collections]
X --> DD[sharing sets/collections]
W --> EE[chat/email help]
W --> FF[highlight help button]
Q --> GG[Help tab]
GG --> HH[chat support]
GG --> II[tutorials]
GG --> JJ[productions]
GG --> KK[feedback page]
Q[Favorites] --> LL[Public]
LL --> MM[Lander Favs]
LL --> NN[Photographer/Contributor Favs]
LL --> OO[Customer Favs]
Q --> PP[Private]
PP --> QQ[Company wide Favs]
PP --> RR[Your personal Favs]
Q --> SS[Suggested]
SS --> TT[most downloads]
Q --> UU[Featured collections]
UU --> VV[Collections]
VV --> WW[What/who/when/where]
WW --> XX[What]
WW --> YY[Who]
WW --> ZZ[When]
WW --> AAA[Where]
AAA --> BBB[Name/title]
AAA --> CCC[Address]
VV --> DDD[Controls]
DDD --> EEE[Remove from collection]
DDD --> FFF[New collections from batch selection]
Q --> GGG[Search results]
GGG --> HHH[Photos]
GGG --> III[Collections/Shoots]
Q --> JJJ[New production]
JJJ --> KKK[Yes]
KKK --> LLL[Collection]
LLL --> MMM[Tags/description]
LLL --> NNN[Thumbnail]
Q --> OOO[Past productions]
OOO --> PPP[Single day of uploads]
Q --> QQQ[Invite/Refer]
QQQ --> RRR[Team level adjustment]
Q --> SSS[Most-downloads icon]
Q --> TTT[Upload]
TTT --> UUU[Title/description]
UUU --> VVV[Save data]
UUU --> WWW[Recent collections]
UUU --> XXX[Favorites]
UUU --> YYY[Slideshow]
UUU --> ZZZ[Suggest tags]
Q --> AAAA[Tagging page]
Q --> BBBB[Image page]
BBBB --> CCCC[Unique sharable URL]
BBBB --> DDDD[Search/place/image]
BBBB --> EEEE[Logged in/out]
Q --> FFFF[Video page]
FFFF --> GGGG[Loop video]
Q --> HHHH[Placement]
classDiagram
class Collection {
+uniqueID: string
+title : string
+description : string
+collections (formerly tags) : array<string>
+location : string
+createdDate : date
+uploadedDate : date
+customizedDate : date
+items : array<string>
}
class Media {
+uniqueID: string
+title : string
+description : string
+collections (formerly tags) : array<string>
+location : string
+EXIF : array<string>
+platforms : socialMedia
+placement : array<string>
+createdDate : date
+uploadedDate : date
+customizedDate : date
+type (video, image, placement, copy, PDF): string // added property - can be 'video', 'image', 'copy (text)', 'PDF', or 'placement'
+approved : boolean
owner: User
uploader: User
viewers: Array<User, Date>
}
class Gallery {
name: string
users: array
darkMode: boolean
}
class User {
name: string
email: string
companies: Company
socialNetworks: SocialNetwork
galleries: array<Gallery>
adminType(billing, admin, owner): string // can be 'billing', 'admin', or 'owner'
stripeUserID: string
paypalUserID: string
preferredPayments: string
galleryColor: string
defaultGallery: Gallery
favorites: array<MediaID, CollectionID>
uploads: array<MediaID, CollectionID>
downloads: array<MediaID, CollecionID>
views: array <mediaID, CollectionID, Date>
}
class Company {
name: string
horizontal-logo: string
website: string
socialNetworks: array<SocialNetwork>
galleries: array<Gallery>
}
class SocialNetwork {
platform(s): array<string>
avatar: string
username: string
users: array<User>
}
Gallery --> Collection
Gallery --> Media
Gallery --> User
Company --* SocialNetwork
User --> SocialNetwork
User --> Company
User --> Media
Media --> SocialNetwork
Collection --* Media
classDiagram
class Image {
+title : string
+description : string
+tags : array<string>
+location : string
+date : date
}
class Collection {
+title : string
+description : string
+tags : array<string>
+location : string
+date : date
+items : array<string>
}
class Placement {
+title : string
+description : string
+tags : array<string>
+location : string
+platform : array<string>
+placement : array<string>
+date : date
+approved : boolean
}
Image --> Collection
Image --> Placement
Collection --* Placement