wiki:IIRS/DevelopmentPlan

Version 34 (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

  • 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 progresssions -- CTools has part of this already.
  • 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. (2) Build stub code for the CTools content types (panes, workflows) needed to behave as template/documentation source.
  2. (1) Create wireframe panes to test workflow progression though pages.
  3. (4) Create views panes (search, listing, display, about).
  4. (1) Expose Widget Instance entity to Panels/CTools as a context.
  5. (3) Create 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.
  7. (1) Convert and update Drupal Features and modules.
  8. (2) Set up test site on Jim's server -- allows us to set up Hybrid Auth social media login
  9. (3) Create very simple Bootstrap-based theme (little/no customisations)

Other key tasks

  1. Convert code so far into better structure (core, initiative, registration etc), reusing PSE widget code where possible
  1. [8] Begin/convert new Widget modules (core, initiative, registration etc) -- see
  2. [8] Enable French language and translate some key bits with Google Translate.
  3. [32] Convert D6 widget modules & features to D7 per IIRS/SolutionDesign
  4. [4] Create 'Hub Profile' on clone (STG?) of D6 TN.org containins basic text, country, language and widget displays.
  5. [8] (Ben?) Update widget HTML/CSS/theme as needed.
  6. [2] Add Services related modules as needed
  7. [8] Update all views, panels, features to handle language context.

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. [4] Debug & improve Hub install profile. --

Expected total: 12.25 +/- 5 (= 98 - 140 hrs)

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