npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@dwmkerr/lifeline

v0.2.3

Published

[![main](https://github.com/dwmkerr/lifeline/actions/workflows/main.yaml/badge.svg)](https://github.com/dwmkerr/lifeline/actions/workflows/main.yaml) [![codecov](https://codecov.io/gh/dwmkerr/lifeline/graph/badge.svg?token=lI5Swxa2tj)](https://codecov.io/

Downloads

13

Readme

lifeline

main codecov

Visualise and track key life events with an interactive timeline.

https://lifeline.rocks

Developer Guide

| Command | Description | | ------- | ----------- | | npm run lint | Lint the code with eslint/prettier | | npm run lint:fix | Fix the code with eslint/prettier |

Firebase

Use the Firebase Local Emulator Suite to help when working with Firebase.

Setup looks like this:

# Install firebase CLI tools, then login.
curl -sL firebase.tools | bash
firebase login

# Initialise the firebase project (not needed for most users, only if you are
# forking and building your own project from scratch).
#
# firebase init
#
# Choose: Firestore, Emulators. Lifeline project. Default options seem to be fine.

# Start the emulator, optionally open the web interface.
firebase emulators:start
open http://localhost:4000

Deploy indexes and rules with:

firebase deploy --only firestore:rules firestore:indexes

Releasing

This project uses Release Please to manage releases. As long as you use Conventional Commit messages, release please will open up a 'release' pull request on the main branch when changes are merged. Merging the release pull request will trigger a full release to NPM.

VERSION="0.1.0" git commit --allow-empty -m "chore: release ${VERSION}" -m "Release-As: ${VERSION}"

Note that currently firestore configuration (security rules and indexes) is not deployed as part of this process, to avoid unexpected downtime while indexes rebuild. Manually deploy these changes as needed.

Goals

  • Build multiple timelines of key life events
  • Events might be: where I lived, work, travel, holidays, climbing, medical, etc
  • Events can be major or minor, to allow a high level view or detailed view
  • Filter that lets you choose which lifelines to show

Building the line

Could be text based:

2021-01-01: home - *moved to UK*
2021-02-03: home - lived in US for a week

TODO

Quick and dirty task list:

  • [x] refactor: initial page structure with joyui
  • [x] feat: setup firebase login
  • [x] feat: setup firebase collection and repository
  • [x] feat: csv import
  • [x] feat: sort events, sort option in UI for direction
  • [x] feat: filter by category
  • [x] feat: color category codes
  • [x] build: coverage badge
  • [x] feat: release please and badge
  • [x] feat: edit event
  • [x] feat: delete event
  • [x] chore: close dialog button on filters
  • [x] feat: dialog for import
  • [x] feat: delete existing events
  • [x] bug: if cancel during import the menu stays open
  • [x] refactor: cleanup import button and fix styles
  • [x] build: fix up main build
  • [x] favicon (heart?)
  • [x] add event as modal to save space
  • [x] add event / edit event modal errors
  • [x] add/edit event required fields
  • [x] retire 'add event' from the top bar
  • [x] feat: deploy to firebase on build
  • [x] search bar
  • [x] feat: major/minor events
  • [x] feat: user settings (DOB, show age)
  • [x] feat: show age in timeline
  • [x] feat: filter by date, refactor into a filters object
  • [x] feat: emoji for categories
  • [x] feat: emoji in category dot
  • [x] feat: filters select all select none
  • [x] bug: add events resets filters (e.g. category)
  • [ ] bug: cannot key in a category in add/edit event

Demoable

  • [x] feat: welcome page
  • [x] feat: on start, show welcome screen if not logged in
  • [x] feat: loading spinner
  • [x] feat: show warning to regularly export events
  • [x] feat: use cloud firestore rather than local
  • [x] feat: feedback option
  • [x] feat: show version number in menu
  • [ ] fix: all events are viewable by all users
  • [ ] build: 'yes/no' step on build to deploy firebase changes - can you dry-run firebase for changes? If so the website deploy should also be gated in the same 'yes/no' step
  • [ ] feat: fix up autocomplete to use the same style of text entry as for tripweather

v0.3

  • [ ] chore: fix version number to 0.x series

  • [ ] feat: watch for firestore errors, test with new site

  • [ ] feat: consider moving search and filters into a filters context so it can be set from anywhere, e.g. on a dropdown from the life events letting you filter to similar events

  • [ ] feat: filters button on navbar, side drawer without overlay / close panel icon

  • [ ] bug: hard bug - category selection in the filters should be preserved when adding/deleting/changing events, first try caused them all to blank out, next try didn't pick up new ones, etc

  • [ ] minor bug: prevent focus for emoji picker?

  • [ ] feat: for emotional impact, option to toggle between category and impact in the timeline view

Link domain “Search” category for events that need research “Don’t know” emoji for impact / severity add starting therapy in uk add cheltenham

Epic - Blur Categories

Option to 'blur' categories so when sharing the screen the details are kept private.

Epic - Demo lifelines

On new user sign up show a demo lifeline and add a user setting 'demo', when this setting is on offer an alert on startup showing it is a demo with the option to remove all values.

Epic - Manage Categories

  • [ ] feat: suggest categories in drop down list for new events
  • [ ] feat: for category select in add/edit, consider the categories in autocomplete with an 'add' button to add a new category

Epic Import Preview

  • [ ] feat: import preview / back to column map
  • [ ] feat: show warning messages on import preview
  • [ ] bug: check autofocus on import/export

Events to add

  • adopted
  • remarry / ruth
  • remarry / guy
  • meet / patrick

Feedback

Ideas from Michelle:

Adverse child experiences scoring. For life events, can you categorise the event as e.g. 'moving', 'depression', 'psychiatric event', 'relationship'. These could be thought of as life-transitions. You could then see that for example prior to a depressive episode there were a series of life transitions that were stressful.

In terms of your own attitude about things that happened; was this event for you happy or dreadful? Could you also add how you feel about it.

Also look at 'impact' as major/minor. The size of the icon could be the majority of the event. Things could be color coded or icons could be sized to see how impactful the event is but also then what the impact is.

When you click and collapse into chronological order. Consider an emoji for how you feel about it.

  • [ ] feat: 'major' should be re-classified as 'impact', which could be minor/intense/etc, this should be an emoji based system
  • [ ] feat: 'category' should offer an emoji, major events should show larger so that they can be more easily seen