Giter Club home page Giter Club logo

chingu-coders / voyage2-turtles-09 Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 1.0 20.38 MB

Blueberry Dash: A productivity manager with a tasty twist. Find inspiration in daily quotes, recipes, and beautiful photography, and get things done with a daily focus and to-do list. All this at your fingertips, whenever you open a new browser tab.

Home Page: https://chrome.google.com/webstore/detail/blueberry-dash/kgcoapeokjecaikfdiomhhobialjjdna

CSS 20.77% HTML 21.63% JavaScript 57.60%

voyage2-turtles-09's Introduction

Blueberry Dash

Replace your new tab page with a dashboard that inspires healthy food choices, encouragement, and productivity.

Blueberry Dash is a productivity manager with a tasty twist. Feel inspired by high quality food art photos, daily quotes, and task management widgets.

This extension is a Momentum Dash clone brought to you by T9, a group of self-learning web devs from the Chingu community. This extension was made during the second iteration of Chingu’s Voyage project.

Find Blueberry Dash in the Chrome Web Store

You can find Blueberry Dash by clicking here

Or navigate to the Chrome Web Store and search for "Blueberry Dash"

About this repository

The API keys for the edamam recipe service and unsplash.com have been omitted from this repository. When forking or cloning this repo, you will need to rename config.js.bak, in the js directory, to config.js, and enter your own API keys.

T9 Team Members

@Misomighty (Project Manager) https://github.com/misomighty
@davidlarsketch https://github.com/DavidLarsKetch
@Reuben https://github.com/mrreubenjones
@8thday https://github.com/8thDay

Links and Acknowledgments

Find out more about Chingu Cohorts here: https://chingu-cohorts.github.io/chingu-directory/
and here: https://medium.com/chingu

Check out the Momentum extension at: https://momentumdash.com/

Background images are courtesy of https://unsplash.com/
Quotations are courtesy of http://forismatic.com/en/
Recipes courtesy of https://www.edamam.com/

voyage2-turtles-09's People

Contributors

davidlarsketch avatar misomighty avatar 8thday avatar mrreubenjones avatar

Stargazers

Kevin Ramsunder avatar  avatar

Watchers

James Cloos avatar Jim Medlock avatar  avatar  avatar Chance avatar  avatar

Forkers

misomighty

voyage2-turtles-09's Issues

Add more stats to recipe panel

The nutritional information section looks like it could use one or two more stats—looks like it's missing something right now.

  • Add one (or two more stats) to the section
  • Refactor CSS so that the stats stretch out to fill the space as the window resizes.

Settings Design: Closing the settings pane isn't entirely intuitive

My usual behaviour for closing popups is to click outside the window, or click on some kind of close icon eg. "x". It took me a while to figure out that I needed to click on the settings cog again to close the panel.

Suggestion: Add a listener for clicking outside the pane, and/or a "close window" button.

Scrollbar does not return to top of settings panel.

The problem: When the user scrolls to the bottom of a settings panel, then closes the settings, the panel remains scrolled. When the user reopens settings, it opens to the same panel, in it's pre-scrolled condition, which makes for poor UX. (Currently, this issue only manifests in the recipes panel).

141117 settings panel remains in scrolled position when closed and reopened

Tweak visuals and tidy CSS/HTML on recipes panel

The text on the recipes panel was styled using the old font, and needs to be tweaked for clarity/readability with the new font.

Also, this would be a good time to clean up the CSS and HTML.

Long titles in the recipe panel are causing ugly wrapping

image

Issue: If the recipe title is long or there are several tags, the wrapping is unpredictable, and doesn't look awesome.

Suggestion:

  • If the line is going to wrap, break it before the tags start, so all tags wrap to the next line together.
  • Also, the padding needs tweaking. I bumped the positioning up a little for the tags because they were too low, but when they wrap it causes them to overlap the title. Maybe try adding some padding/margin to the bottom of the title to fix this.

Error when double clicking on time

chrome.storage.sync.get(null, (obj) => {

I'm getting the following error when I double click on the time:
Error in response to storage.get: TypeError: Cannot read property 'hour12' of undefined at Object.chrome.storage.sync.get [as callback] (chrome-extension://bcophjanoidfloajjdncffigbhnnnolo/js/script-clock.js:54:32) at HTMLElement.timeHTMLSelector.addEventListener (chrome-extension://bcophjanoidfloajjdncffigbhnnnolo/js/script-clock.js:47:27)

It looks like the timeSetting variable hasn't been saved when the get call is made on line 47. Presumably because this is the first time I have run the feature.

Hovering over image credit does not always hide widgets

Sometimes when I hover over the image credit, the widgets don't fade out in order to showcase the image. The cursor has to be placed quite precisely to trigger the behaviour.
I've not checked the code yet, but I would imagine that we just need to move the event listener on to the parent element.

Ability to rename task lists

I think it'd be cool to enable editing a task list name. At the moment, if someone wanted to rename a list, they'd have to delete the whole thing, along with list items and start over.

Using contenteditable=true in the HTML tag will enable changing the name, but accompanying functions would also have to be written to save that across tabs.

feature/user-name does not handle "" or whitespace

-Initial name entry handles the case where the user tries to submit an empty string, but allows them to enter just white-space.
-When the user clicks on their name in the greeting to edit it, the feature will accept an empty string or white-space.

I've just handled a similar issue in feature/main-focus, using regex to look for any input that wasn't white-space. My code seems to be doing the job, but please let me know if you find a more robust solution.

Find a solution to the limit on API calls at Edamam

Problem: Edamam (the food API service we're using) has a limit on the number of calls we can make—5000/month and 5/minute.

Suggestion 1
Load x number of recipes on the initial request. Then when the user tries to refresh the recipe, they don't put through a new request. This is an okay solution, but one issue would be that all of the recipes loaded would have the same search query and diet filter. eg. "chicken" and "low-fat". It would be weird for the user to keep getting the same type of recipes with every refresh.

Suggestion 2
Remove the reload button. This would only allow users to see one recipe per day. As it is a recipe of the day feature, this doesn't seem so bad in theory. In practice however, the recipes are so random that there's a fair chance that the result will be something that the user doesn't like.

Suggestion 3
Build in user preferences (and remove reload button). Instead of a random recipe automatically loading, have the panel set up so that the initial view presents a selection of preference filters for the user to choose from. Eg. The first view shows a series of food types that the user can pick from. Eg. Chicken, Cow, Pig, Vegetables, Pasta, Stew, etc. The next section would allow the user to pick from a variety of diets, eg. balanced, low-sodium, paleo, etc. And the last would allow them to select additional health tags, such as gluten free, peanut free, etc.

Hide scrollbars when not hovering within specific div?

When reviewing and approving PR for the scrollbar styling, I noticed that it might make the UI simpler if we hide the scrollbars when not hovering over the div in question...

Hidden scrollbars:
image

Visible when hovering over the scrollable content:
image

The code to make this work is pretty simple (assuming I'm not doing it wrong):

  background-clip: padding-box;
  background-color: rgba(255, 255, 255, .25);
  border: 3px solid transparent;
  border-radius: 8px;
  visibility: hidden;
}

:hover::-webkit-scrollbar-thumb {
  visibility: visible;
}```

Error occurs when user deselects ALL the ingredient options

When a user deselects all of the ingredients, an empty query is sent to Edamam on the next request.

Not sure of the best way to deal with this, some options:

  • display a message that not all ingredients can be deselected,
  • not allow the the last ingredient to be deselected
  • reset the ingredients back to "all"
  • let the user deselect everything, but send some kind of general query (maybe one that searches based on source (eg. Jamie Oliver)

Image credit text shifts left when other content is hidden

The image credit text shifts to the left as the rest of the content on the page is hidden (to showcase the background image).

This appears to be the result of using the jQuery .fadeOut() method, which adds a style of display: none; to all matched elements, removing them from the flow of the page. Removing the settings-icon-wrapper div causes the bottom row to shift left.

David has already proposed that we use;

the hidden utility we have for initial-wrapper & main-wrapper instead of inline style attribute

Can we use the same technique to resolve this issue?

To-do and Settings panel consistency

image

I've noticed that the Settings panel is a little bit removed from the icon, and the little arrow thing (technical name) doesn't quite point at the cog. On the other hand, the To-do panel could perhaps give the todo link a little breathing room, and doesn't have a little arrow thing. The panel corners are also different.

Suggestions:

  • Give to-do panel the same rounded corners as settings
  • Give to-do panel a little more bottom padding (balanced with the whitespace around the other sides of the todo list)
  • Give to-do panel a little arrow thing
  • Match the settings panel external spacing to the to-do panel

Recipe settings scrollbar needs styling

The scrollbar on the recipe panel in settings needs styles explicitly setting.
Currently, it looks great on Mac, but has ugly grey default styling on Windows.

111117 recipe setting panel

Nutrition data: total vs per serving

Currently, nutrition data is totaled across all servings and displayed as such. However, there is some ambiguity to the user as to whether that data is per serving or total. So, either:

  1. Add and display the units of the data, e.g., "total"
  2. Modify the data and display its units so that it is "per serving"

Tasks not printing

Starting with a fresh copy of the extension, adding a new todo in General does not cause it to be printed to task-panel.

  • Refreshing the page does not cause those tasks to be printed.
  • By first adding a new list and then adding a task, tasks print.
  • Previously entered tasks do not print.

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.