Code Monkey home page Code Monkey logo

dashboard's Introduction

Hello, I'm Darek Kay! ๐Ÿ‘‹

I'm a front-end developer and an accessibility advocate. I love sharing what I know through my blog, teaching and speaking at conferences. If you want to learn more about what I do, look at all the awesome things I'm building to make people's lives better. ๐Ÿ’–

In my free time, I enjoy photography, board games, movies and playing instruments.

Follow me

Latest blog posts ๐Ÿ“–

๐Ÿ‘‰๏ธ View all blog posts

Latest photo ๐Ÿ“ท๏ธ

Motioned-blurred people walking in front of an advertising wall. A mix of sharp and motion-blurred people on the advertisement. The people on the ad hold shopping bags with the letters G, E, T, E and C.

๐Ÿ‘‰๏ธ View all photos

dashboard's People

Contributors

adrianrios25 avatar allcontributors[bot] avatar darekkay avatar faboo03 avatar ludufre avatar pinkahd avatar syentix avatar tatekennington avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dashboard's Issues

Random image

The current Image widget requires the user to type in the full URL of an image:

image

It would be great to have a "Random image" button, so a) the user can see how the widget is supposed to work and b) getting a random image is a nice feature in itself.

Something like the Unsplash API could be used.

There are some related ideas for images to be considered when working on this:

  • Upload a custom image instead of having to type a URL
  • Have a random daily image - this can be either a standalone widget or made part of the existing Image widget

Webhook integration

From #13:

Basically people use webhook to get the latest blog post, build status etc. So thinking of generalised panel for this, given it should be cachable. If it's okay for you , iwould try to add. But i am not expert on front-end side (espcially react)

A simple server webhook receiver endpoint should be easy to integrate, but:

a) There's currently no data persistence on the server-side (except a memory-only request cache).
b) Currently, the client would still need to poll the data, because there is no server-to-client push mechanism in place.
c) There's no user management right now. Any data received by the webhook would be available by everyone (not a big issue when self-hosted)

Prevent losing data when the page is closed

User data is being stored in the local storage using redux-persist.
If the user enters some data (e.g. within the Text widget) and immediately closes the page, the data might not be saved.

One solution is to explicitly persist the store by listening to the beforeunload event. This depends on whether this action can be executed reliably for all supported browsers.

An alternative is to display a warning message when a page is being closed (using the same beforeunload event) as long as there are unpersisted changes (similar to what Todoist is doing).

In the future, the user account feature is likely to be implemented, making it necessary to store the data on the server. Hence, using something like sendBeacon might be required.

Focus the headline after a modal opens

After opening a modal (e.g. Settings or Widget Configuration), the headline should be focused (if one exists) for better accessibility. Additionally, the DOM order of the headline and close button should be reversed (while visually maintained using CSS order), so the modal close button is focused last.

Backup shouldn't restore outdated data

Some widgets, like the Cryptocurrency or the GitHub widget, rely on up-to-date information. When the data is exported (settings menu) and imported later, it will contain outdated information. This should be solved by either:

  • Excluding certain data from the export, or
  • Excluding the data when it's being imported

A generic approach to define excluded paths per widget is required.

An alternative or addition is to mark outdated data somehow (e.g. an exlamation mark) or placing "last updated" label somewhere.

Replace enzyme with react-testing-library

React Testing Library encourages better, user-centered tests instead of the Enzyme way to test implementation details.

I've introduced a few tests using react-testing-library already, especially for custom hooks (which Enzyme doesn't handle well).

Subtasks

  • Rewrite all enzyme tests with react-testing-library
  • Remove enzyme
  • Improve test coverage by writing more (useful) tests
  • Include eslint-plugin-testing-library
  • Fix all act warnings (probably solved automatically by removing enzyme tests)

Resources:

GitHub Stats are missing when the value is zero

Instead of the row now being rendered at all, a 0 value should be displayed:

image

The reason is the usage of !! which is meant for missing values, but it handles 0 as well.

Please notice, there's a general issue of handling data while it's not available. Currently, nothing will be rendered at all when the data is being fetched, but some indicator would probably be good (can be handled in a separate issue).

Find a good project name

I've stopped creating domains for projects that might not get traction. Instead I am now hosting most of my projects under a subdomain or subfolder of my main domain. Hence, this Dashboard project currently lives under dashboard.darekkay.com.

However, if this project becomes more popular, it should get a proper name and an own domain. So far, I didn't find a name that was great and not already taken. Any input is welcome ๐Ÿ˜ƒ

Todoist MVP Implementation

Objective : link Todoist to the board and have a consolidate vision of the project we want / need.

Features :
1 - Link account to Todoist with oAuth2
2 - Add a panel with the upcoming task
3 - Add the possibility to close the task if completed or to open it as a target blank page for more changes.
4 - Add a panel with a custom query (project / date / filterId ...)

Provide zoom in/out functionality

In the past I have evaluated a fluid typography design, i.e., the possibility for widgets to scale their font size based on the widget size. See my explanation for why I have abandoned this idea.

Instead, constant font sizes are used for all widgets and all breakpoints. While the user can use native browser zoom functionality, zoom in/out buttons in the header may improve the UX (especially for less tech-savvy people).

It is to be checked whether the header itself should be zoomed as well, or just the content.

One possible solution is using the CSS transform: scale(x) function.

Storybook test coverage

Hi there,

You extracted storybook into a separate folder (which I am also trying to do). I have it fully working except for the coverage add-on. Were you able to get that working? It was working for me if storybook is in the same package.json as the app, but not if it is extracted.

Any help would be greatly appreciated.

Thanks!

Find a channel to exchange

Hello,

I made a quick overview of the tools that I knew (or not :)) used in big open source project.

I believe that I would go like this :

  • Gitter to chat simply : No archive, no file sharing etc ...
  • Slack if we need to go further :)

For the project, I guess we could just use a Github Project and make some card for extension. ;)

So let's try with gitter and start to know each other ;)

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.