GithubHelp home page GithubHelp logo

listory's Introduction

hsimah

Personal website

listory's People

Contributors

dependabot[bot] avatar hsimah avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

mvaneijgen

listory's Issues

Server warm up

Lokijs needs time to warm up and load into memory. Currently the app will fail gracefully but there should be a way to use the db loaded state to trigger a change in what is returned from the handler should the db not be ready.

Export database from server.js and load a waiting page until db is loaded.

  • export database
  • waiting page
  • server routing to waiting page

Build script

Write a gulp script to build client and do a serverless deploy.

Error Handling

There needs to be a level of error handling in the application.

GraphQL failures (query and mutation) need to be handled.
Bad routes need to be handled.

Tidy up environments

Currently there are two .env files and a secret.json. Consolidate these into something smarter.

Serverless is using input option stage to determine the URI, so the NODE_ENV may no longer be necessary.

Repeatable Lists

Pivoting Listory from lists of lists to repeatable completion checklists. (Will return to lists of lists later.)

Work to create repeatable lists is complete #52.

Need to implement:

  1. create new active list
  2. complete list
  3. complete item
  4. generate QR code

User info

Put user profile pic and name in the App bar.

Improve server side route handling

Currently only /list is handled, every other request is treated as static content.

  • remove all superfluous static serverside content
    • favicon
    • index.html
    • /static
  • add in configuration

List Items UI

A user wants to search for items

  • server side route
  • client side route
  • client side page
  • query

UI Redesign

Once MVP is complete, redo UI:

  • mobile first design
  • dark mode
  • Lists page
  • List Items page
  • Add List dialog
  • Edit List page
  • Edit List Item page

Deploy to AWS

Refactor code to use serverless and deploy to AWS

  • Config serverless
  • Config gulp/build script
  • Config Route 53
  • Config client

List Item Lists

A user wants to search for lists

On List details view we can see all List Items for the current list. Duplicate this behaviour for Lists on List Items (ie remove item from Lists, or add item to Lists). No create List functionality needed.

Refactor API and Schema

Following from #13 where the database is now warmed up by apollo server and injected into resolvers via context there is a lot of duplicated code in the resolver. The idea of API and Schema being separate may no longer work with the new context-based database.

Refactor the Schema and API modules:

  • to have a base checkAuth function to handle unauthorised requests.
  • inject Database not Loki into context
    • use collections instead of getting/adding in API.

Update List Item UI

A user wants to edit an item

  • server route handler
  • client page
  • client route handler
  • mutation

Per user lists and items

Associate lists and items with FB user ID.

Add in an enum for share level - PRIVATE (only me), PUBLIC (everyone), COLLABORATIVE (everyone, can edit)

Merge Sub Lists into Master and Transient

A user wants to add a list to a list

Create a search component which renders lists to add to a list.
Merge list items into current list.
Store linked list IDs in database for future use (ie no need to expose in schema at this point).

Lokijs Dynamic View

Create three dynamic views:

  • List dynamic view
    • List item IDs are retrieved from list item collection and added as a Set to list
  • List Item dynamic view
    • List IDs are retrieved from list collection and added as a Set to list item
  • All Item dynamic view
    • All entity names and IDs are added to a view for fast searching

Delete Lists

Currently the update mutation does not handle deleting a list.

On the server - delete the list and return ID only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.