mapstory / mapstory Goto Github PK
View Code? Open in Web Editor NEWMapStory is the free atlas of change that everyone can edit
Home Page: http://mapstory.org
License: GNU General Public License v3.0
MapStory is the free atlas of change that everyone can edit
Home Page: http://mapstory.org
License: GNU General Public License v3.0
After first uploading a custom thumbnail, consecutive thumbnail changes don't apply.
We are not generating any original thumbnails for new stories anymore. All appear as an empty image.
A first effort model could be to grab the image at the last slice of Chapter 1. This will guarantee that there is some data features to visualize. And, every story will have 1 chapter.
Users can already also upload their own thumbnail to override the auto-thumbnail. But we need to at least provide one to start.
In the future, it would be cool to have an auto animated-GIF generator that takes a number of slices from the story.
(This is a restatement of MSSS-280 https://issues.boundlessgeo.com:8443/browse/MSSS-280)
Where does the information in the story properties modal display?
When a user views the story sidebar, the only thing that currently displays is the chapter summary.
Explore design possibilities of using the sidebar as an option for displaying StoryPin content -- an alternative to showing pins on the map or the timeline.
If the developer is syncing a folder between the host and guest vm, the ansible scripts will fail when trying to clone the mapstory repos. Those tasks (mapstory.yml lines 14:29) should only run when the path does not already exist.
This seems like pattern to check if a path exists. (from https://groups.google.com/forum/#!topic/ansible-project/ifi8_8FTKVo)
- name: Check if path exists
stat: path=/etc/monit/conf.d
register: check_path
- name: It exists
debug: msg='Yay, the path exists!'
when: check_path.stat.exists
- name: It doesn't exist
debug: msg="Boohoo, the path doesn't exist..."
when: check_path.stat.exists == false
Current state: "Add New Chapter" button drops you into the "chapter info" tab. Is this what we want to maintain?
Major:
Minor:
The "interests", "city" and "country filters on storyteller explore don't work and should be removed from prod until operable.
(this is a restatement of MSSS-248 in Jira, https://issues.boundlessgeo.com:8443/browse/MSSS-248
the current viewer sidebar has a transparency setting, so that the map, layers and styles are visible behind Chapter Info text. The current setting is too transparent. Text is difficult to read if strong stylers are applied.
In screenshot below, the line styling on the States is strong, and makes text difficult to read.
Research different settings based on different styles and apply fix.
User Story
As a user composing a story
I want to create StoryPins for my Mapstory
In order to emphasize events, media, or places to provide more information and context to viewers of my MapStory
Acceptance Criteria/Questions to Answer
Deliverable
Incorporate StoryPin features into the high-fidelity mock-up for Composer MVP to facilitate discussion about technical feasibility with the team and create feature stories that further refine the design or technical tasks associated with this.
Once the site map is relatively complete, create a wiki page that lists JS, assets, templates, and any other relevant info for each page.
Currently the chapter summaries can be quite long and require the user to scroll in order to see the full description. If the summary is long and the user must scroll, the "next" and "previous" links aren't initially visible.
Things to consider as part of this effort:
Is there a format for creating hyperlinks in the text of a News Item?
Currently there is no simple way for a user to return to a state where they can see all StoryLayers and MapStories after they have filtered content somehow, using a filter or word search, for example. The only obvious way is to refresh the entire browser.
A Clear Search button will make it easy for a user to return to a state of seeing all content.
this is a restatement of MSSS-251 https://issues.boundlessgeo.com:8443/browse/MSSS-251
The restart django task attempts to restart django before it has been started. I can temporarily fix this by changing the state to started
here: https://github.com/MapStory/mapstory-geonode/blob/master/scripts/provision/handlers.yml#L10. I'm sure there is an easy way to add some conditional logic here.
NOTIFIED: [restart django] ****************************************************
failed: [192.168.56.151] => {"failed": true}
msg: FAILED: attempted to kill gunicorn-django with sig SIGTERM but it wasn't running
gunicorn-django: ERROR (already started)
This story depends on #273.
It is now out of sync given new CSS.
@glynnis new composer interface will include an updated method of guiding new users in composer.
amongst challenges of trying to set up mapstory is that there are no data sets easily accessible and documented in setup instructions to test the install end to end.
These should be able to double as test fixtures for uploading (and extended functions).
We de-activated the Activity Feed on user accounts because:
it was showing the creation of individual "chapters" as its own action, with links to chapters outside the context of their story and,
we weren't tracking users uploading of icons in the activity.
We should add the icon uploads to activity feed data and remove links to individual chapters, rather than just mapstories, and redeploy activity feed to user profile
Acceptance Criteria:
-Activity Feed added back to user profiles
-Chapters not showing up in activity feed w/ links outside the context of their story
-Icon commons uploads reflected in activity feed.
Add "preview mode" toggle to the header and design any user flows surrounding that.
The home page now supports the parallax effect, however, if you scroll down the index page, it doesn't scroll very smoothly as compared to the homepage on MapStoryOrg repo . I'm not sure if that is an issue with the Smoothscroll.js file.
To get MapLoom to build correctly, you currently have to enter the MapLoom project and run:
bower install
npm install
grunt copy
Ensure that mock-ups cover all features necessary for MVP and don't represent any features that won't be included in the initial release. Vet them with the team and publish them/break them into issues here.
When a user imports a dataset, the wizard should allow the user to help sanitize and normalize attribute names to a common schema so that there is consistency with naming and casing of attributes labels within the application. This will also help avoid the use of reserved words as attribute names.
We could keep a mapping of changes and use as future suggestions at the point of upload.
Example fields extracted from the existing database used for the time field however we shouldn't limit it to time fields:
A_year
Date_start
Elect_year
Expend_Yea
Fake_end
Fake_start
ISO_time
New_start
Oil_year
a_starting
a_year
a_years
aa_year
acc_date_t
access_days_time
acq_date
acq_time
active_year
activitystart
age_as_year
alt_year
amend
amended_by
amendscan
annexdate
anxyear
apprehende
ar_start
area_year
award_date
backend_start
bd_blends
beg_yr_as_year
begin_date
begindate_as_year
begindate_xd
begintime
begintime_as_date
begintime_parsed
begintime_xd
beginyear
beginyear_parsed
beginyear_xd
birthdate
bldg_end_d
bldgyear
blk_read_time
blk_write_time
buffers_backend
buffers_backend_fsync
build date_xd
byear
cal_year
can_year
card_date
cc_year
changeyear
checkpoint_sync_time
checkpoint_write_time
checkpoints_timed
class_date
closedate
codes_date
commentend
cowedate
coweyear
cowsdate
cowsyear
cpit_year
cpiy_year
creation_time
cy1year
cy2year
d1_year
d_years
data_end
data_start
data_time
data_year
date
date1
date2
date_
date_1
date_2
date_as_year
date_built
date_created_xd
date_end
date_end_1
date_estab
date_field_as_year
date_format_as_year
date_new
date_of_bi
date_of_st
date_rec
date_st
date_start
date_started
date_text
date_time
date_xd
date_year
date_yr
datebymont_as_year
dateend
dateended
dateform
dateformed
datenum
dateoftrea
dateonly_as_year
dateopened
dates
datestart
datestarted
datet
datetext
datetime
datetime_as_year
datetime_precision
datetimes
days_year
deededdate
deis_end
deis_start
depl_year
descendant
description_as_year
dispatch date / time
dro_years
e1_year
e85_blender_pump
e_date_xd
e_year
e_years
earn_year
ec_date
efayear
elect_year
encendido
end
end date
end date / time
end date_parsed
end date_xd
end year
end2
end2_parsed
end2_xd
end_2
end_acq_dt
end_chg_ty
end_date
end_date_1
end_date_2
end_date_2_as_date
end_date_3
end_date__
end_date_as_year
end_date_parsed
end_date_xd
end_day_
end_month
end_month_
end_mp
end_n
end_parsed
end_period
end_ref
end_rule
end_serf
end_slave
end_time
end_xd
end_year
end_year_
end_yer
end_yr
end_yr_as_year
endate
endcong
endcong_1
enddate
enddate_as_year
enddate_parsed
enddate_parsed0
enddate_xd
enddate_xd0
enddatet
enddayofye
enddesc
ended
endingdate
endlat
endlng
endlon
endofperiod
endofperiod_parsed
endofperiod_xd
endorsemen
endowment
endtime
endyear
endyear_parsed
endyear_xd
ent_date_as_year
est_crime_time
event_date
eventdate
exp_year
expend_cou
expend_dol
expend_obj
expend_sta
expend_yea
eyear
f_date
f_date_ope
f_year
fake_end
fake_start
fakeyear
fakeyear2
fats_end
fats_start
fcc_as_year
fdate_xd
feis_end
feis_start
final_time
final_year
finaldate
fipscode_as_year
fire_date_as_year
fire_year
fire_year_as_date
firstpumparriving_attendancetime
fiscal_date
fiscal_year
friendlyca
friendlyki
friendlywi
from_date
full_year
g_year
g_years
gdp_year
gender
gender_gap
gni_year
gpp_year
gps_time
gr_year
h_years
hdi_years
hl_year
homes_year
ht_year
i_year
identity_start
if_year
iit_end_da
iit_start_
im_year
image_year
in_end
in_end_ref
in_start
in_timeline
insert date_as_year
instdate
int_start
is_udt_dependent
iso_date
iso_end
iso_start
iso_time
isodate
isotime
it_year
iv_year
iyear
job_end_dt
job_start_
k_time
ktime
l_year
l_years
lat_end
lat_start
legal_date
legend
lending_in
listyear
ln_year
local_time
long_end
long_start
longitude_as_year
lv_year
lymet_year
m_year
ma_time
ma_time_as_date
ma_time_as_year
minde_year
mn2_year
mp_years
msndate
mt_year_
multimed_1
multimedia
n_end_date
n_start_da
n_year
name_as_year
name_start
neg_k_time
neg_time
neo_year
new_date
new_end
new_start
newdate
newtime
numbackends
numpumpsattending
numstationswithpumpsattending
observation date_as_year
oid_as_year
oil_year
on_year
on_year_as_date
on_year_as_year
opendate
openyear
osm_timest
osmtimesta
outdated
p1_year
p_years
pan_time
parent_end
parl_year
peak_attendees
pend_litig
permit_end
pg_dbt_end
pg_end_dat
po_year
prek_year
prepare_time
prsend
prsstart
py10year
py1year
py2year
py3year
py4year
py5year
py6year
py7year
py8year
py9year
q_start
query_start
rate_year_
ratif_year
rc_year
realdate
repdate
repyear
result_cast_datetime_precision
road_year
s_year
sale_date
secondpumparriving_attendancetime
self_time
sh_year
shift_time
showtime_
sql_language_year
sset_year
start
start date
start date / time
start date_parsed
start date_xd
start1
start2
startDate
startTime
start_2
start_3
start_as_year
start_dat0
start_dat1
start_date
start_date_as_date
start_date_as_year
start_date_of_incident
start_date_parsed
start_date_xd
start_ear
start_month
start_n
start_parsed
start_ref
start_time
start_value
start_xd
start_year
start_year_parsed
start_year_xd
start_yr
startcon_1
startcong
startdate
startdate_parsed
startdate_xd
startdated
startdatef
startdatefix
startdayof
starting_d
startingdate
starttime
startup_s2
startup_s3
startup_s4
startup_so
startyear
startyear_parsed
startyear_xd
str_year
study_time
sum_year
sum_year_1
sum_year_2
surveyyear
syear
synoptime
t1_year
t2_year
t5_year
t_year
taxyear
teen_year
tempend
tempstart
terr_year
time
time observations started
time1
time2
time_
time_as_date
time_as_year
time_e
time_hhmms
time_of_report
time_over_
time_parsed
time_perio
time_preci
time_precision
time_s
time_tab_1
time_tab_2
time_table
time_txt
time_xd
time_year
timeend
timeend_parsed
timeend_xd
timeline
timeline_1
timeline_Y
timeline_e
timeline_s
timeline_y
timeofcall
timeofftar
timeofobservations
timeontarg
timeseries
timespan
timestam_1
timestamp
timestamp1
timestamp2
timestamp3
timestamp_
timestamp_as_date
timestart
timestart_parsed
timestart_xd
timezone
tmp_end
tmp_start
to
to_date
total_attended
total_time
tracktime
typsend
u_starting
ur_year
usa__date
vending
vendor
vendorid
verbatimel
verbatimev
w12_end_yr
w1_opendat
w1_opendat_as_date
w1_opendat_as_year
w1_opendat_parsed
w1_opendat_xd
wendi_name
who_year
wind_year
xact_start
year
year1
year2
year_
year_1
year_12
year_12_13
year_12_14
year_12_15
year_2
year_adm
year_annex
year_appea
year_as_da
year_as_date
year_as_year
year_b
year_blt
year_built
year_close
year_compl
year_cor
year_date
year_draft
year_e
year_elect
year_end
year_end_as_date
year_est
year_found
year_id
year_insta
year_long
year_nu
year_of_im
year_open
year_opene
year_ord
year_parsed
year_parsed0
year_purch
year_s
year_st
year_start
year_start_as_date
year_t
year_tex_1
year_tex_2
year_text
year_txt
year_xd
year_xd0
year_year
yearalter1
yearalter2
yearannex
yearblt
yearbuilt
yearcensus
yeardbl
yearend
yearparcel
yearpassed
years
years_on_f
yearstart
yearstring
yeartext
yeartxt
yearval
yearyear
yearyear2
yearyear3
yr_ce_end
yr_end
yr_start
zone year
zone_end_y
zone_year
ztime
As a user, I want to upload raster data, such as a print map or an aerial image, or sequence of images, into MapStory as a StoryLayer so I can do things, like, make MapStories that animate digital data on top of historic print maps or images.
Acceptance Criteria
Notes
Previous tickets for raster upload on the old site:
MapStory/mapstory-meta#669
MapStory/mapstory-meta#1264
The example map form in Get Pages seems to ask for too much information. Is it possible here just to add a hyperlink to a mapstory?
Acceptance Criteria
Deliverable
Incorporate styling features into the high-fidelity mock-up for Composer MVP to facilitate discussion about technical feasibility with the team and create feature stories that further refine the design or technical tasks associated with this.
this enables bulk actions like setting categories or published status without having to into each MapStory one by one.
(not providing screenshots since an internal admin issue)
Redesign notifications. Some scenarios to account for:
Failure in the importer causes a problem - the underlying problem is masked:
GeoNode/django-osgeo-importer#4
Adding it hear even if its a uploader concern because it impacts, and I suspect there should be tests in the mapstory layer to make sure things work.
Not sure what happens if a problem fails in mapstory-specific tasks - (i cant get importer to succeed the mapstory part of things yet - fails without any message or log somewhere after setting up geoserver layer)
Will also submit issue re having test data that definitely works available as a test fixture.
When a user is trying to add an icon to a point-layer style, the Icon Commons modal appears with no icons pre-loaded. Thus, it looks empty:
If a user knows what icons they are looking for, they can type in a keyword and have icons appear, but this requires already knowing what is there, something very few users will no.
Instead, the Icons Commons modal should appear with all icons pre-loaded into the modal so the user can see them. The text box to enter keywords should just function to reduce the Icons that appear to those that correspond with the Keyword (in other words, a filter).
Add playheads feature/UX to:
Remove all of the custom MapStory specific code from our fork of Geonode so that we can stay up to Geonode master, and so that the Geonode tests will work. Geonode is already fairly tested (and we can add tests and submit PRs to Geonode if anything is missing) so this will help get us a long way towards a high percentage of automated test coverage.
This results in the site tables not getting created and populated and results in a broken state. Specifically, when visiting any page, results in Exception Value: no such table: django_site
Resize and compress the images from the following lists:
https://mapstory.org/admin/mapstory/sponsor/
https://mapstory.org/admin/groups/groupprofile/
This will improve load time across the site. cc/ @emilyashley
A moving carousel allows us to show off a set of mapstories on the homepage.
If the implementation is easier without the category tabs, we can remove those and just feature a single common set of mapstories.
restatement of MSSS-284 in Jira, https://issues.boundlessgeo.com:8443/browse/MSSS-284
This story needs to be completed before #275
What states can a story be in with regards to being published, unpublished, draft, saved vs. unsaved changes, etc.
Prep these states, discuss with @jonpmarino and @glynnis so that Design for the header can be completed.
StoryLayers can be:
MapStories can be:
NOTE - Returning a mapstory to 'draft' unpublishes the story until it is re-published
NOTE - MapStories can only use public StoryLayers since, by definition, a layer has to be public in order to be viewed and shared in a published mapstory.
(It looks like when a MapStory is "returned to draft" it successfully is hidden from explore, but can still be accessed with a direct link)
(It would be nice if the user in composer was given more detail about what happens when "saving as a draft", as they are when a story is published)
User Story
As a user composing a story
I want to apply custom styles to a layer within my Mapstory (without affecting the layer itself)
In order to emphasize events or places and help viewers understand the narrative of my MapStory
Acceptance Criteria
Deliverable
Incorporate styling features into the high-fidelity mock-up for Composer MVP to facilitate discussion about technical feasibility with the team and create feature stories that further refine the design or technical tasks associated with this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.