wiki:IIRS/DevelopmentPlan

Version 41 (modified by jim, 3 years ago) (diff)

--

Development plan & progress log

Alpha (19 September)

Delivers a simple D7 site based on TN's own new distribution and module set, with component/plugabble (initiative) widget system, internationalisation capabilities.

Research tasks

  • TODO update IIRS/SolutionDesign
  • UNDERWAY: Investigate I18n & related language/internationalisation modules & best practice -- see https://drupal.org/node/133977
  • POSTPONED: Resolve tension/shortcoming in nested Drush Makefiles causing module dupes between /profiles/modules and /sites/all/modules - https://drupal.org/node/1006620
  • DISCOVER: If a module or interface exists for handling multi pages with workflow type progressions.
  • DISCOVER: Investigate content syncing tasks based on Services and Services Client.
  • DECISION (Jim): Establish whether to use existing, standard Panels renderer or customise new one for working with Widgets.
  • DECISION (Jim): Use current page manager or extend based around Widget Instance and Framework concepts.

Plan

Estimated time in hours in brackets.

  1. Complete (2) Build stub code for the CTools content types (panes, workflows) needed to behave as template/documentation source.
  1. UNDERWAY Build panes for display:
    1. (1) Listing (1) Search - using geocoder and Views currently listing only, todo map.
    2. (1) Display item -- will use Teaser view of initiative (ini), should be doable directly from Panels without coding.
    3. (2) Map view -- views
    4. (2) About page/pane - to decide if this is a fieldable panel pane, a node or some included text in module.
  2. (.5) Add primary PoC to Ini CT.
  3. (3) Create wireframe panes to test workflow progression though pages.
  4. (6) Finalise workflow mechanism, code, test
  5. (3) Create widget panel from panes and instances created so far. Add placeholder strings and deliver to Ed to get sign off and translated into Portuguese.
  6. (4) Build stub Widget Instance entity and part of related UI for viewing/managing them. -- https://api.drupal.org/api/examples/entity_example!entity_example.module/7 and http://www.trellon.com/content/blog/creating-own-entities-entity-api
  7. (1) Expose Widget Instance entity to Panels/CTools as a context.
  8. (1) Convert and update Drupal Features and modules.
  9. (2) Set up test site on Jim's server -- allows us to set up Hybrid Auth social media login
  10. (3) Create very simple Bootstrap-based theme (little/no customisations)
  11. (2) Enable Portuguese language, import language files.
  12. (4) Convert key entry pages from PSE to Panes/CTools Content Types, extending stubs built
  13. (4) Update all views, panes, features to handle language context.

Other key tasks

  1. Convert code so far into better structure (core, initiative, registration etc), reusing PSE widget code where possible
  2. Convert D6 widget modules & features to D7 per updated IIRS/SolutionDesign.
  3. Add Services and Services Client modules

Nice to haves

These are a secondary goals that are nice to haves, but the IIRS widget with internationalisation and associated (syncing) directory is the primary goal... To do if we have time, Ed to prioritise as needed.

  1. Create 'Hub Profile' on clone (STG?) of D6 TN.org containins basic text, country, language and widget displays.
  2. Debug & improve Hub install profile.
  3. [8] (Ben?) Update widget HTML/CSS/theme as needed.

Beta (? October)

Delivers a cleaned/tweaked up system and some web services connections back to the D6 site, plus an installed and integrated beta website.

  1. [12] Fix bugs/do tweaks
  2. [32] Add Services to sync between D6 <--> D7 sites (and future hub sites) with resilient queuing, plugable architecture
  3. [12] Test, tweak, prep Beta, install, integrate

Subtotal: 6.5 +/- 3 days (= 52 - 76 hrs)

Total: 18.75 +/- 8 days (= 150 - 216 hrs)

NB: from Ed - Jim - your total time budget is 150 hrs. This gives us 3 days with a second programmer in beta phase (agreed as good idea). Bear this in mind!

Development Log

Notes

  • Hours in [square brackets] is an estimate, (hours in normal brackets) on done items is time actually spent.
  • 21.5 hours already spent on design, meetings and documentation

26 August -- 4 hours spent

  • Clone winacc_panpoly distribution repo -> rename to transitionnetwork_d7 - transitionnetwork_d7 repo (1.5 hours)
  • Change profile to be TN-focused, include key modules: (1 hours)
    • Address, Geofield, geocoder, geophp
    • Leaflet
    • dnl, i18n
  • Set up local development site (1.5 hours).

28 August -- 3h (7h total)

  • R&D into
    • various aspects: BOA, Leaflet/OpenLayers?, makefiles etc (0.5 hours)
    • R&D into internationalisation dnl, i18n (0.5 hours)
  • Create Initiative content type with required fields (0.5 hours)
  • Create Base and Initiative feature, push to GitHub? (1.5 hours) -- Base repo, Initiative repo

29 August -- 4.5h (11.5h total)

  • Social login decided, added to makefile: HybridAuth? Social Login (0.5 hours)
  • R&D for user profile modules, added user profile2 module (0.5 hours)
  • Ed Mitchell & Jim Kirkpatrick Skype PM/Design/Progress meeting (1 hour)
  • Looked into: Countries, Location Taxonomize and decided to KISS for now. (0.25 hours)
  • R&D/Decision Made: NO user location-related fields present on basic Drupal account, First, Last & Middle name fields only. ALL location and other features for users will be on Profile2 and defined later. (0.25 hours)
  • Added realname and realname_registration to remove need for username on registration (0.25 hours)
  • Create User Profile feature (decide approach Profile2 vs core user fields etc) (0.75 hours) -- User repo
  • Updated base and user features to include required modules, began Social Login work with Hybrid auth -- will wait until test server setup as oAuth keys etc needed (0.5 hours)
  • Investigate I18n & related language/internationalisation modules & best practice -- see https://drupal.org/node/133977 (0.25 so far)
  • Resolve tension/shortcoming in nested Drush Makefiles causing module dupes between /profiles/modules and /sites/all/modules - https://drupal.org/node/1006620 (0.25 so far)

31 August -- 0.75h (12.25h total)

  • Module & widget design sketching, R&D... Decisions made: (0.25 hours)
  • Debug & improve TN D7 Hub install profile. (0.5 hours)

3 September -- 4h (16.25h total)

  • Module & widget design sketching, R&D... Decisions made: (3.75 hours)
    • Try to use as much of Panels and Page Manager as possible for rendering, building and managing widgets.
    • New structure follows;
      • Framework = Defines the wrapper, renderer, libraries (CSS, JS) and means of operation of the widget. Frameworks must be able to render the key set of elements that make up a widget. For this project we're only interested in a 'Simple HTML' framework. Future frameworks could include: AJAX HTML, iGoogle, Backbone.js, Angular.js etc.
      • Layout = A way of arranging widget components (Panels panes) on the widget. For this project we'll build 'Full page', 'Sidebar' and 'Button only' widget layouts.
      • Elements = a chunk of widget that will be delivered by the framework -- the bits a widget is built from with the framework... We need: Container (shows a panels display in iFrame), Modal-container (shows panels display iFrame in popup), Button, Link... More can be added as needed and provided by other modules etc.
      • Workflow = A means of linking displays (pages) and processes within the widget together.
    • http://drupal.org/project/widgets is no use at all -- good module for in Drupal site widgets, not for generating/rendering those outside.
  • Email regarding integration with incumbent/existing sites (0.25 hours)

4 September -- 1.5h (17.75)

  • Development Work to create plugins and framework using panels/ctools as base (1 hour)
  • Skype with Ed regarding progress and plans (0.5 hours)

Hiatus, retool

Ed moved house, Jim was busy... Lots of thinking happened but not much actual development. Jim is now back and all over this like a {insert suitable simile‎ here}!

22 October -- 1 h (1 total)

  • Mild rethink to maximise results, minimise development and aim squarely at the IIRS widget as the MVP. -- DOCS UPDATE PENDING --
  • Plan of module & architecture from Drupal/code perspective -- code sketching.
  • Decision taken to not include panopoly

24 October -- 4h (5 total)

  • Ed & Jim project Skype meeting
  • Created and enhanced Widgetizer module based on previous code.
  • Added new CTools type for 'Combined login/register' pane, (re)using much of PSE code for that.
  • Fixed annoying typo/bug preventing Ctools seeing new types.

25 October -- 1h (6 total)

  • Added stub Ctools types for entry page for entity... At this point unsure if I'll use the basic/standard Initiative Node form, or a separate form with mapping (per PSE)

3 November October -- 1.5h (7.5 total)

  • R&D: decided CTools multistep form wizard isn't up to the job -- too focused on forms, can't handle multiple steps. Now need to see if a module or interface exists for handling multi pages with workflow type progressions -- Options remaining:
    1. (original plan) Simple CTools plugin type that allows code to specify steps and critiera
    2. A panels region that uses position/index of pane to decide position in workflow -- hacky...
    3. Another module, TBC.
  • Built proximity search based on Geofield and Views -- can search for any postcode/address/city+country the user enters. Ideally add HTML5 geolocation, too -- https://drupal.org/node/2011340
  • Now need to make map views --liking the look of https://drupal.org/project/ip_geoloc for searchable map views a LOT.
  • Also interesting: https://drupal.org/project/global_filter -- allows a user to set their location ONCE and it be applied to all views needing location henceforth. Hmm..