You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Built with AWS Amplify & AppSync. Uses ElasticSearch, DynamoDB, NodeJS, React, and the Google Maps API.
Initially started because I was (am) a broke sucker in NYC. Currently, the events are collected by yours truly, from scrapers I wrote here. This site can be found here.
Since Coronavirus, I have pivoted to online free streaming events. All events are still currently NYC-focused. Once we return to a semblance of normal, I will bring back the map search functionality.
Status
Events by location & date
MVP - done, now on hold
Streaming events by date
MVP - done, now main branch
To Run
This is mostly a reminder for myself. Anyone else reading this may have difficulty setting up.
First you need to get a Google Maps API key. (The ones in package.json will only work for my machine). Then amplify init and all that jazz. It can be run with npm run-script start. You will need to use the scrapers to populate the backend.
Todos
Goals for alpha and beta testing:
Goal
Tag
Priority
In Progress
Done
React Components
qol, js
low
Filter public art by class
js
med
yes
unnecessary for MVP
Flag public art
graphql, js
high
done
MVP
Get photos & show info window
graphql, js
high
yes
MVP
Upload new location
graphql, js
high
yes
UI & QOL improvements
qol, css, js
low
Login process
UX
medium
Long-term support
medium
React/Components
Status
Have info window content be component that then contains form
done
Forms should handle changes in multiple inputs with one method
Info window should be contained w/in google map screen (negates need to scroll)
done (sidebar)
Currently queries a location and fills the sidebar in one function (separate)
Filter public art by class
Status
Priority
Add options
done
medium
Ability to select multiple options
lowest
Store types as list in dynamoDB (currently only one type allowed)
low
Make types an enum in Appsync GraphQL API
done
Check 'type' is chosen by user when uploading new location
done
low
add 'professional' type - for business/resume help
medium
Free events
Status
Priority
Initial creation
done
Searchable in app
Accept new picture upload
Accept report/flagging
Search button should switch between public art and events
done
HIGH
Filter search by date/time
EVENT - time only
HIGH
Do you need to sign up ahead of time? For Carnegie Hall, yes
Type checker on upload (python)
Dates should be a discrete list (instead of start/end)
done
HIGH
If searching for current day, ignore events with time < now
mid-high
Display event description
done
high
Event calendar should open on date from search
done
medium
Consider splitting 'art' into 'fine art' and 'arts & crafts'
low
In schema: unify event and art with inherited 'location' type
low
Flag events
done
mid-high
Option for all-day events & multiple days
mid
Can click tile to open in own window (Routes)
mid
Flag public art/event
Status
Seperate DynamoDB table
done
Authentication for users
done
Store with location ID instead of just art name
done
Show error when user does not select reason (currently only in console)
done
Get photos & Info Window
Status
Download from DB
done
Close old info window when a new one is opened
done
Upload resized photos to db (400 x 400?)
done - max dimension of 250px
Enforce Google Places API from app/site only - key has no restrictions
Error if photo doesn't exist: info window does not open
done (?)
throttles many requests: photo should only be rendered if infoWindow is shown
done (?)
leave googleusercontent & store photos from google on S3 (being throttled)
done
search should ignore non-permenent locations that are out of date
done
search type should be enum
done
ES console - Invalid host header requests?
Upload new Location (and photo)
Status
Upload to DB
done
Upload photos from app (mobile app only?)
URGENT
Should suggest user's current location
done
Each upload submission creates duplicate empty divs (bugfix)
low priority
Upload new image should also add link in DynamoDB image list
done
Only create new upload div if the old one does not exist (bugfix)