Skip to content

Latest commit

 

History

History
30 lines (30 loc) · 3.22 KB

TODO.md

File metadata and controls

30 lines (30 loc) · 3.22 KB
  • Write more tests and validations for Filter.
  • Write validations and tests specific to the Dimensional lens
  • Write validations and tests specific to the Time Series lens
  • Write tests for the various #from_params methods
  • Figure out a date picker UI for From/To.
    • Needs to support selecting absolute dates, and relative dates via expressions. Both should be able to be entered manually, or filled in based on suggested/common ranges. For example, the user should be able to select "Last 30 days" as both an absolute range, and as a relative range.
    • When working with relative expressions, the UI should show a hint as to what absolute time the expressions currently resolves to, so that the user can be confident they are writing the expression correctly.
    • The app always thinks in terms of "GTE From AND LT To". This does not necessarily have to be how the UI works for users. For example, we may want the user to be able to select "January 01" to "January 31" in the UI, if their desire is to select the entire month of January. If we want the UI behavior to differ from the app's internal behavior, we have to have a good plan for how to do that consistently and reliably.
  • Figure out if we want to support time zones for the range selection at all. The app only thinks in terms of UTC.
    • I vote no, at least to start.
    • If/when we do want to support time zones at all, it must be done entirely on the client side, the from and to values in the URL query will always be UTC-only.
  • Figure out a UI for filter multi-selects.
    • Things like podcast_id, country_id, timezone, etc.
    • While some of these are filtering on ID, the user should interact with something more friendly, like the podcast name.
    • The values available for these filters for any given user should probably be cached somewhere.
  • Add validations for values that must be authorized, like podcast_id.
    • The app needs to ensure that it will never query a database for resources that the user isn't authorized to access. The UI should only present authorized values, but check them again before the query is actually sent.
  • Finalize dimension names
    • These need to be consistent because changing them would break saved URLs, reports, etc
  • If the user adds an exclude filter on an impression dimension (like advertiser), but only selects downloads as a metric, ensure that all downloads associated with that advertiser are excluded, even if there are other impression rows for that download for other advertisers.
  • When using EXTRACT on timestamps, it may be helpful to be able to decide if the extract should use the timezone or not. If a user is extracting, for example, on download time, they likely would expect a download at 5 PM ET and 5 PM PT to be treated the same way, but when using EXTRACT without a timezone, they would get treated more like midnight at 2 AM.
    • Need to verify what happens with downloads that don't have a timezone
  • Document how these cases are handled:
    • episode pubDate changes
    • episode RSS guid changes (i.e., multiple drop spikes)
    • episode is deleted
    • episode is unpublished
    • episode is dropped with a backdated pubDate
    • episode is imported (i.e., missing historical data)
  • Maybe allow filters/groups/etc to reference the time range from/to?