Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
358 lines (357 sloc) 16.5 KB

Marks the progress of the Interactive Maps Application

Day 1 (29 May 2019)

  • Make new space for application in XWiki
  • Set up reusable Leaflet code from previous application iteration
  • Have a detailed video call with mentor
  • Create a PointClass for storing points
  • Create a MapClass
  • Code for MapSheet for correctly rendering the map from relevant map object data

Day 2 (30 May 2019)

  • Study Solr search query API
  • Make required changes to PointClass
  • Fix exceptions in rendering the map
  • Create a macro #handleMapQuery for processing the data from query
  • Get the data in JSON from the #handleMapQuery macro and supply it to javascript
  • Visualize data on the map using javascript

Day 3 (31 May 2019)

  • Make a page CommonMacros to include common application macros
  • Improve Leaflet jsx code
  • Fit the map to point(s) bounds on load
  • Submit the work done to mentors. Await mentors' review.

Day 4 (1 June 2019)

  • Code for custom marker icon
  • Get the first attachment on a page with PointClass object for marker icon (to be updated)
  • Await mentors' review

Day 5 (2 June 2019)

  • Await mentors' review

Day 6 (3 June 2019)

  • Analyze changes suggested by Stephane
  • Move all application's classes, templates and sheets to directly under Code space
  • Change MapClass's properties defaultZoom (to integer) and query (to textarea)
  • Make TemplateProvider for MapTemplate
  • Add page title to popup information
  • Add livetable for created maps on page Maps.WebHome

Day 7 (4 June 2019)

  • Change MapSheet to neglect pages that are not map items
  • Change Leaflet to ignore pages with no location data
  • Study Solr Search Application
  • Look into Main.SolrSearch and Main.SolrSearchMacros
  • Edit solr search results to output JSON

Day 8 (5 June 2019)

  • Extract macros from Main.SolrSearchMacros
  • Edit search macros to work for maps
  • Display map with search facets

Day 9 (6 June 2019)

  • Make search form visible for default MapSheet
  • Try fixing facet macros not working for MapSheet
  • Use #displaySearchFacetValues macro as an alternative to $facetDisplayer
  • Code to capture XWiki dom update for changes in facets
  • Allow map updates for changes in search and facets

Day 10 (7 June 2019)

  • Make search form and filter widget visible for default MapSheet view
  • Custom config for solr search
  • Merge pull request from @slauriere for museum maps
  • Do not reload map for changes in filters (currently solr filters reload all page content asynchronously)

Day 11-12 (8-9 June 2019)

  • Weekend

Day 13 (10 June 2019)

  • Apply theme colors to map and map items (tiles not included)
  • Fix icon offset of custom markers

Day 14 (11 June 2019)

  • Thoroughly examine Main.SolrSearch for async jsx code
  • Make the map query search asynchronous

Day 15 (12 June 2019)

  • Examine why some museum filters have errors e.g. Germany
  • Fix defective mapData json
  • Change map item limit (in solr query) from 10 items to 50 items

Day 16 (13 June 2019)

  • Add custom space for popups
  • Make popups responsive for easy viewing on small devices

Day 17 (14 June 2019)

  • Add filter controls
  • Add support for search type
  • Change search form to support both location and item type search
  • Remove old search control

Day 18 (15 June 2019)

  • Add list of map results
  • Add link to the map item page for each result
  • Allow moving to the map item location from search results
  • Fix long titles problem in popups

Day 19 (16 June 2019)

  • Holiday

Day 20 (17 June 2019)

  • Analyze releasenotes application
  • Prepare demos and tests

Day 21 (18 June 2019)

  • Examine all POMs and create a new project structure
  • Push the new structure and prepare for release

Day 22 (19 June 2019)

  • Analyze code for data importer by Stephane
  • Create a generalized data importer with itemLabel, lat, lon as basic fields
  • Add support for custom fields by creating a class if required

Day 23 (20 June 2019)

  • Create search control inside map
  • Create an overlay panel over map for search and facets
  • Move map search, search results and facets into the newly created panel
  • Change search type selection layout
  • Write required code in velocity, css and js

Day 24 (21 June 2019)

  • Add fullscreen control
  • Optimize jsx code
  • Fix test module POMs

Day 25 (22 June 2019)

  • Add UI tests

Day 26-40 (23 June - 7 July 2019)

  • Final term exams

Day 41 (8 July 2019)

  • Make attachment whose name starts with "marker" as marker icon
  • Do not reload map for changes in filters
  • Fix facet macros not working for MapSheet (related forum post)
  • Preserve map state after async requests reload the content
  • Support for map states in URL

Day 42 (9 July 2019)

  • Minor updates and fixes

Day 43 (10 July 2019)

  • Fix facets for preserving map state
  • Fix js errors for bad variable name

Day 44 (11 July 2019)

  • Make leaflet controls load faster
  • Dynamically updating URL with map state for each necessary action
  • Fix facets not keeping the map state
  • Update facets URL with map state
  • Always show map item results

Day 45 (12 July 2019)

  • Escape fullscreen mode with the escape key
  • Add map scale
  • Make map size (width and height) configurable
  • Support for custom attribution
  • Show current location error for insecure context
  • Change current location label
  • Other improvements and fixes

Day 46 (13 July 2019)

  • Remove dedicated popup area
  • Use improved leaflet default small popups for displaying point data
  • Other minor fixes

Day 47 (14 July 2019)

  • Shift search control to top left side corner of the map
  • Add close button to map search and filter
  • Change icon of current location control
  • Prepare full application documentation for release

Day 48 (15 July 2019)

  • Try to release the application
  • Try fixing git error in release

Day 49 (16 July 2019)

  • Try to release the application
  • Fix git error (thanks to Thomas)
  • Release again because of accidently releasing two versions
  • Import the application on
  • Announce the release on XWiki forum and dev mailing list

Day 50 (17 July 2019)

  • Use image macro in documentation
  • Add tooltips to leaflet controls
  • Separate advanced map options

Day 51 (18 July 2019)

  • Update tests to support new MapSheet
  • Add new field in MapClass for custom location properties
  • Code for processing custom location property of any class
  • Remove doc extra from Maps.WebHome
  • Preselect MapTemplate for pages in Maps space
  • Remove demo data importer

Day 52 (19 July 2019)

  • Allow options in map configuration for including and configuring facet fields
  • Code for custom facet fields
  • Use static list for MapClass properties which accept multiple values (customLocationProperties, facetFields)

Day 53 (20 July 2019)

  • Create PathClass for path maps
  • Code for processing paths

Day 54 (21 July 2019)

  • Break

Day 55 (22 July 2019)

  • Update leaflet version to 1.5.1
  • Further code for path maps
  • Code for processing source and destination to create paths

Day 56 (23 July 2019)

  • Change PointClass to support separate latitude and longitude values
  • Change all code the uses PointClass to follow the new structure
  • Change all points and maps to use the new PointClass structure

Day 57 (24 July 2019)

  • Try to implement LocationDescriptionClass to update PointClass using an event listener (dropped because event listener requires programming rights)
  • Create Point Editor for creating points using addresses
  • Set up preview map for Point Editor

Day 58 (25 July 2019)

  • Set up location search form for Point Editor
  • Click anywhere on the map preview to select a location
  • Create a point using Point Editor

Day 59 (26 July 2019)

  • Change PathClass to include an array of points rather than just source and destination
  • Update code to support a path between a number of points

Day 60-61 (27-28 July 2019)

  • Weekend

Day 62 (29 July 2019)

  • Update map state for changes in search widget
  • Fix go to path's location on map item results
  • Ask which approach to user for the ShapeClass options property

Day 63 (30 July 2019)

  • Create a macro for repeating setting popup data and common map item options
  • Create ShapeClass
  • Implement polyline shape type

Day 64 (31 July 2019)

  • Go to location of shapes from map results
  • Implement polygon, rectangle, circle and circle marker shape types

Day 65 (1 August 2019)

  • Full screen for map previews
  • Set up shape editor

Day 66 (2 August 2019)

  • Change structure of PointClass to include popup option
  • Use GeoJSON for shapes
  • Change ShapeClass to support GeoJSON
  • Update map data importer for new PointClass structure
  • Set up GeoJSON shapes to be included as map items

Day 67 (3 August 2019)

  • Common function for setting up map search in map previews
  • Edit points directly on the page with a map preview based PointSheet
  • Point Editor as PointSheet for editing and creating points
  • Code for PointSheet
  • Create PointTemplate and PointTemplateProvider

Day 68 (4 August 2019)

  • Break

Day 69 (5 August 2019)

  • Shape Editor as ShapeSheet
  • Edit shapes directly with a preview
  • Map controls as tools for creating shapes using Leaflet.Editable
  • Support for creating shapes and saving them as GeoJSON
  • Go to GeoJSON shape in map results
  • Code optimization

Day 70 (6 August 2019)

  • Break

Day 71 (7 August 2019)

  • Support for editing shapes with ShapeSheet
  • Code optimization

Day 72 (8 August 2019)

  • Break

Day 73 (9 August 2019)

  • Option to specify custom classes for Points
  • Latitude and longitude of points from custom classes
  • Save shape's GeoJSON after vertex changed (not just after commiting a shape)

Day 74 (10 August 2019)

  • Process custom point class to create a map item
  • Take latitude and longitude of custom classes using property names specified

Day 75 (11 August 2019)

  • Create ShapeTemplateProvider
  • Fix velocity error occuring when trying to load shape object with no data
  • Set empty GeoJSON for ShapeSheet if there is no shape data

Day 76 (12 August 2019)

  • Improve code for custom point classes
  • Fix error in demo map points
  • Change latitude and longitude of PointClass from string to double

Day 77 (13 August 2019)

  • Write macro for getting a key value with multiple suffixes
  • Make marker draggable when editing a point (PointSheet)
  • Rename PointClass popupContent property to content
  • Add includePopups option for maps

Day 78 (14 August 2019)

  • Update edit and view modes of PointSheet
  • Show map with a point when viewing a Point object (PointSheet)
  • Show latitude and longitude fields when editing points
  • Allow updating Point location according to custom filled latitude and longitude

Day 79 (15 August 2019)

  • Rename template providers to include "TemplateProvider" suffix (MapTemplateProvider etc.)
  • Update hints of shape and point template providers
  • Use terminal pages by default for template providers except MapTemplateProvider
  • Create PathSheet, PathTemplate for creating a PathTemplateProvider
  • Fix tests failing after updating PointSheet to include latitude and longitude fields

Day 80 (16 August 2019)

  • Update Maps.WebHome to include livetables of Point, Path and Shape objects
  • Improve code of PointSheet and ShapeSheet
  • Show map with shape when viewing a Shape object (ShapeSheet)
  • Add style property to ShapeClass for applying styles to shapes using JSON

Day 81 (17 August 2019)

  • Break

Day 82 (18 August 2019)

  • Editable options for points
  • Update tests to support options for points
  • Update style property of shapes

Day 83 (19 August 2019)

  • Add circle support in GeoJSON so that circle shapes can be processed
  • Set up webjars for Leaflet.Editable and Path.Drag.js
  • Fix error in parsing LeafletUtils jsx

Day 84 (20 August 2019)

  • PointEditor: Place the marker at the searched location
  • Fix errors and warnings in console

Day 85 (21 August 2019)

  • Add indoor structures support
  • Code for IndoorSheet
  • Handle indoor structure as a map item

Day 86 (22 August 2019)

  • Add leaflet-indoor.js as an attachment to LeafletUtils
  • Fork and edit leaflet-indoor to support leaflet 1.5.1
  • Add necessary options to leaflet-indoor.js so that it works with the application
  • Change LeafletUtils code so it works well with the updated leaflet-indoor
  • Deploy forked leaflet-indoor on

Day 87 (23 August 2019)

  • Move map rendering specific code from LeafletUtils to MapSheet
  • Create a new jsx for leaflet libraries so they can be parsed in isolation
  • Handle inconsistencies in the name of properties gotten from solr response (get full key name from a short key name to handle suffixes)
  • Fix error occuring because of apostrophe in map data
  • Fix errors in go to location of some map items
  • Full code for map editor
  • Easy creation of Points and Shapes using the map editor

Day 88 (24 August 2019)

  • Create template and template provider for indoor structures
  • Add support for point in indoor structure items
  • Move MapDataImporter as a terminal page
  • Hide all code pages
  • Remove leaflet-indoor.js from LeafletUtils' attachments and add dependency for leaflet-indoor webjar

Marks the progress of the Interactive Maps Application (Old)

Day 1 (18 May 2019)

  • JavaScript jsx code for a simple map with marker and popup
  • Code for creating a new map
  • Code for SimpleMapSheet to correctly edit, create and display the map
  • Support for xwiki/2.1 syntax in popups

Day 2 (19 May 2019)

  • JavaScript jsx code for the Map Editor
  • Code for creating a new map with Map Editor
  • Interactive and preview-based creation of map with Map Editor
  • Implementation of current location leaflet control (only works for secure connections)
  • Implementation of location search leaflet control
  • Synchronized and updated styling for the added controls

Day 3 (20 May 2019)

  • Transfer github repository to xwiki-contrib
  • Create project design page on
  • Add description and milestones on XWiki GSoC project page
  • Standard and improved style for creation form of SimpleMapSheet
  • Change textarea of popupData to ckeditor in Map Editor - ToDo: Ask community
  • Add support for custom marker icon

Day 4 (21 May 2019)

  • Create Map.Maps.WebHome for displaying all created maps
  • Minor changes in velocity code for Map Editor
  • Create a leaflet-commons module for common leaflet functions
  • Change leaflet-map javascript code to support general functions
  • Create class for and set up PathMap
  • Analyze OSRM to get path between two points
  • Get and display path between two points as steps (not smooth)

Day 5 (22 May 2019)

  • Get polyline decode from @mapbox/polyline
  • Use decoded polyline geometries from OSRM to generate paths
  • Create reverseGeocode to convert latlng to place name using nominatim
  • Use reverseGeocode as popup for PathMap source and destination
  • Code for creating Path Maps with Map Editor
  • jsx for the Path Maps Map Editor
  • Combine multiple Map Editors on a single page

Day 6-7 (23-24 May 2019)

  • Add distance and duration to routes of Path Map
  • Report the progress to mentors
  • Fix encoding issue in xml when formatting files using mvn xar:format (thanks to Evalica and Enygma for the fix)
  • Start planning for filterable list maps

Day 8-9 (25-26 May 2019)

  • Template providers for creating new maps
  • Improve and synchronize the style for leaflet controls

Day 10 (27 May 2019)

  • Create class for filterable list map objects
  • Start work on Map Editor for filterable list maps

Day 11 (28 May 2019)

  • Improve filterable list map editor
  • Create FilterableListMapSheet and FilterableListMapTemplate
  • Handle multiple field forms in FL Map Editor with same name
  • Display the data in FilterableListMapSheet for manipulating later
You can’t perform that action at this time.