Git Product home page Git Product logo

my-recipes's People

Contributors

juancarlosgarcia-arg avatar

Watchers

 avatar

my-recipes's Issues

**Add the "Mis Recetas" feature**

This need to be:

  • Visible only for authenticated users.
  • Need to be added as a menu item in the "Recetario" dropdown menu.
  • Must display either all the recipes created by the user or a button followed by an encouraging message to create his first recipe.

**Handling delays in the app**

We need to apply some sort of progress indicator or spinning animation while the page is rendering or hitting the services.

**Create "new-recipe" component**

Create the component we will need to add recipes to the site.
Also, we will need this to be linked from the "latest-recipes" component at the moment no recipes are in the repository.

**API Security improvements I**

  • The following attributes can't be part of any JSON filters submitted by a client app:
    • "publishedOn"
    • "createdBy"
    • "lastUpdateBy"
  • New query parameter "owner" with the following possible values:
    "me" -> Will retrieve all the entities of the requested kind owned by the user.
    "others" -> Will retrieve only entities owned by other users.
    "any" -> Will retrieve any entity regardless of which user is the owner.
  • Change the "my-recipes" component to use this new query parameter instead of include user details in the JSON filter.

**Populate on the API is not working for subdocuments**

When the querystring variable "pop=true" is passed to the API, only the attributes to the parent document that are references to model entities are populated. If some of this entities include other entities, they are not populated.

We can fix this only up to first level subdocument entities.We can't go further because seems not to be supported in the current Mongoose version.

**API Security improvements II**

We need to implement the following server side security features.

For any Requests with GET method:

  • Only Owners can request a Recipe or RecipeIngredient that is not published.
  • Other not published entities can be requested only by ADMIN users.

For any Request with POST method:

  • Anonymous users can't create an entity of any kind.
  • Only ADMIN users can create entities other than Ingredient, Recipe and RecipeIngredient.

For any Request with PUT method:

  • Anonymous users can't update any entity.
  • Only the Owner can update Recipe and RecipeIngredients.
  • Any other entity can be updated only by ADMIN users.

For any Request with DELETE method:

  • Anonymous users can't delete any entity.
  • Only the Owner can delete Recipe and RecipeIngredients.
  • Any other entity can be deleted only by ADMIN users.

**Fix Navigation bar**

Nav Bar is now in all pages but there is some functionality that must be only enable in Home page.

**Fix carousel images! - PART 1: Media API endpoint**

Don't even think on show those real "carousel" images...
Replace them for a more appropriate pictures.
-We will use Cloudinary as CDN provider for holding Mis Recetas site images. For now we are talking about just the Carousel in home page but later we can add also user pictures on profiles, recipes, etc.
-We will add a /media endpoint in our API to act as a link with our CDN provider and retrieve the carousel images.

**Implement soft deletion**

Right now when you delete an entity is permanently deleted from the database.
The lack of referential integrity rules in the DB provider cause issues in the app when a document is missing.

The architectural approach to remediate this issue will be:

  • Implement soft deletion through a field in the Entity model that indicates if the document is actually deleted.
  • Implement a periodical batch job in the DB to find orphan documents and proceed to final deletion without to affect data consistency.

**Add entities Audit info**

Must consider the following properties:

  • Created on
  • Created by
  • Last update on
  • Last updated by

Consider if needed some other workflow data, like: If the item must be published on the web site or since when, need to be evaluated.

**Refactor the Navigation bar as a component**

For now the Nav Bar created as part of the Home page. But we need to include it as part of any individual page. So we need to refactor it to expose that functionality through a new component.

**Add 404 Page**

when we go to a non existent page, the app is throwing an error instead of redirect to a 404 page.

**Create a Coming soon site**

Let's start rising the expectations! :-)
Actually is to test the alias assigned to the APP.
Just a single page with a "coming soon" message also to test NOW static site deployments and alias settings.

**Fix Search functionality**

Following topics to consider:

  • When searching exact terms, (using quotes), there is no highlight in the results, (This is because the term is not between quotes in the results :-).
  • Paginate searches in the following way: 1st search must retrieve a maximum of 5 results. A button must allow to search for next 10, and after that another button must be enable to retrieve all the pending results.

**Add last 3 created recipes to cache**

Every time you come back to Home page the recipes displayed in the "latest-recipes" component need to be loaded again. We need to:

  • Add the 3 latest recipes to cache.
  • Invalidate that cache every time a new recipes is added or deleted.

**Debugging Error**

Unexpectedly start having issues debugging code with message "ENOENT: no such file or directory ...... /index.js/package.json'"

Solution: need to rename API folder :(

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.