Git Product home page Git Product logo

recipe-hub's People

Contributors

rlamorea avatar

Watchers

 avatar

recipe-hub's Issues

Set up React/Node infrastructure

We are building this on React (front-end) and Node (back-end), so we need to get the basic server/front-end up and running.

Completed when we can get a Hello World page up and going.

List of recipes

We need a standard list of recipes. This should:

  • Use recipe summaries
  • Be paginated (pages of 10)

Selected tag display

The selected tag display shows only selected tags for a recipe. It can be embedded in a recipe summary or details page.

  • compact form (compressed grouping)
  • expanded form (expanded grouping)
  • embed compact form in recipe summary
  • embed expanded form in recipe page (maybe toggle compact/expanded?)
  • unit tests.

Print a google document

We want to be able to print an embedded google doc (in Preview mode ideally, barring that, in edit mode).

Tags object

Create a Tags object

  • Name of tag
  • Parent of tag (nullable)
  • Selectable (default true, false for non-selectable group headings)
  • Full CRUD
  • Deletion of parent means all children pointing to parent have parent replaced with deleted tag's parent.
  • Unit tests

tag matching search

Build the API to search by tag matching

  • Match all recipes that have one tag
  • Match all recipes that have at least one tag
  • Match all recipes that have all of a set of tags
  • Match all recipes that do not have one tag
  • Match all recipes that do not have at any of a set of tags.
  • Unit tests

Unit Test for Google Docs API

Find a way to do Google Docs API unit tests. This will almost certainly be done with emulation. Unclear if there is an existing library to do it or one needs to be built.

Free Text Search for Recipe List Display

Integrate free text search into the recipe list

  • Search box with delayed-action RESTful call
  • Embed "reloading" mode into list display
  • Update list results with returned search results
  • Work for both adding and removing characters from search
  • Work for pasting into search box
  • Add "clear" action to search box
  • Work for clear/group delete of all text in search box
  • Work for group delete of block of text in search box
  • Unit tests

Free Text Search for Recipe List API

Provide the means to search recipes via Google text search.

  • Extend Recipe List API to specify search
  • Use search parameters to call Google text search
  • Filter results to ensure match with known (DB) recipes
  • Unit tests

Tag selection UI

Build a widget for displaying tags in groups, allowing selection/deselection of tags.

  • Top level should be "header" groups (unselectable "tags")
  • One group of "other" for all parentless tags.
  • Subsequent levels should only show direct children of parent.
  • If a parent tag is selected and has children, then show children to select.
  • If parent tag is unselected, all selected children are automatically unselected as well.
  • Widget should be an overlay that expands/contracts as needed.
  • Unit tests.

Recipe Summary Display

The Recipe Summary display is used for list items (and possibly other places).

It provides the name of the recipe (linked to details) and other information to be added later.

Maintain Google Login

We want to maintain a login to the account. Ideally this should be done by a Google token rather than a local JWT.

  • See if we can auto log in via Google user token (if it exists)
  • See if the Google token is available on the phone and for how long.

Recipe Details (and Edit) Page

A page that displays full recipe details, which is:

  • Name of the recipe
  • Embedded view of recipe document
  • Ability to live-edit the name of the recipe
  • Ability to switch to edit view of the recipe in docs

Tag search UI

The UI to select tags to search for.

  • Select from (grouped) list of tags.
  • Add/remove tags from search.
  • Embed tags into search bar.
  • Allow for deletion of tag in search bar.
  • Unit tests

Combined tag/free text search

Provide means to mix tag and free-text searching

  • Use tags embedded in search box with text entered there
  • Do both searches, intersect results
  • Return by pages (tricky)
  • Unit tests

Get basic DB working

We'll need a DB to store information.

The quickest and easiest to implement for our needs will be MongoDB, so we'll use that.

We will need:

  • Installation and configuration of MongoDB
  • Set up a simple object to link to the DB (Mongoose)
  • Set up a unit test to prove it works (and we can simulate the DB)

Recipe CRUD API

Need REST-ful CRUD API for Recipes.

  • Full List API (limited results possible to populate summaries)
  • Paginated List API
  • Read API (populate details)
  • Update (name/title only)
  • Delete - deletes the file
  • Unit tests

Recipe Object

Each recipe file needs an associated object in the DB.

  • Wrapper to store recipe name (doc title) and doc file path and ID
  • Update of name updates doc title as well
  • Identify recipe files that don't exist in DB
  • Identify document title changes by file ID and update DB
  • Unit tests

Tag assignment to a recipe

Recipe object needs to have a list of assigned tags.

  • Create - Add tags to recipe
  • Update - Add or Remove tags from recipe
  • Read - Get tags for recipe
  • Unit tests

Get eslint/Hound configured appropriately

I need to get eslint or jshint or whichever works best set up for the front (react) and back (node/express/feathers). This should work in WebStorm, in Hound, and via a command-line execution.

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.