Git Product home page Git Product logo

custom-clock's Introduction

custom-clock's People

Contributors

maingron avatar

Stargazers

 avatar  avatar

Watchers

 avatar

custom-clock's Issues

Refresh Rate improvements

The user should be able to set a custom Refresh Rate and or an automatic Refresh Rate (60 fps for 60 Hz displays, 120 fps for 120 Hz displays)

Setting: Storage backend

Add a setting that allows the user to select a storage backend. This should be an advanced setting!

Storage backends can include:

  • Cookies
  • localStorage()
  • System storage
  • MainOS: IOfs
  • Read from hardcoded js (need to export export_config.js every time)
  • Read from external config

Leave edit mode when leaving Clock

The clock should return to non-editing mode after leaving the site.
Would help with possible confusement and it's just better, I guess.

Add Sounds

Add a sound engine and add an option that enables sound (soundMode: muted(default) -> soundEnabled).
Then the user should be able to specify when to play a sound and or mute individual blocks.
Maybe the user wants to hear a custom elephant sound every full hour.

on-events often get discarded in edit mode

Events like onclick are likely to get discarded in editing mode. This (probably) is because blocks basically get respawned every tick, which includes the editing Icons of each block. Once the icons are removed and added again, the event isn't valid anymore.

12-Hour Format

Until now the clock was only tested in 24-Hour Format. It should be verified if it works if the user requests 12-Hour Format. It's possible it just breaks.

  • While at it, add a block that states AM/PM

*Labelling as bug until verified.

block-image

Add a block / blocks that add user pictures

The blocks may include:

  • Single image
  • Slideshow
  • Slideshow controls (pause, play, next, prev, temp hide block) for
    • Specific slideshow
    • Global

Consider: what to do on config ex-/ import (#9)

block-container

Add a block that can contain other blocks (drag & drop).

Could end up like this when rendering:

<div template=block-container>
    <div template=block-container>
        <div template=block-hours>00</div>
        ...
    </div>
    ....
</div>

Intension is that the user can "combine" multiple blocks so they won't change their spacing in between. Example: Hours: Minutes : Seconds

Improve modularity

Define: Extensions = Combination of HTML Template and JS which together make up a block, for example.

Currently you can write Extensions like this: Block Templates in HTML and JS separately.

In future there should be a new parser which allows to write everything / every extension respectively in it's own clockHTML file.

The parser would then import all Extensions.
Maybe something like this:

mymod.html:

<template something>
... (HTML Templates goes here)

<tick>
developers_custom_function() {
  document.body.style.opacity -= .1;
}
</tick>
</template>

Where <tick> would be the JavaScript which currently would have to be hardcoded into the js tick section.

With the new system, <tick> would be eliminated from the cached extension file by the parser and instead be appended to the cached global tick.

Those "cached" files are rebuilt every time the clock is reloaded and should probably be stored in CachedStorage(). Once they're built, they'd get appended to the index.html, I guess.

This is a major change, but it'd be a good change.

block-weather

Add a block / multiple blocks that display the weather.

Including:

  • Weather icon
  • Temperature
  • Moisture
  • Weather
  • Wind speed
  • Wind direction

Also add setting for Celsius / Fahrenheit / Kelvin - Maybe even per-block

Also add setting that allows the user to define the behavior of what happens when the weather service can't be requested, including:

  • Hide block(s)
  • Gray out block(s)
  • Display error on block(s)
  • Transform block(s) into something else
  • Display last block state (see Gray out blocks)
  • Transform block(s) (movement, size)

Additional Todos:

  • Find weather service (s)

Support mobile

Mobile and Touchscreens aren't supported yet. They have to be supported, too.

Fix trashy code

This was / is a school project. I ran into time issues which caused the code to become more and more trashy.
The code should be fixed before anything major gets added.

Stopwatch

Everyone I talked to, so far, wished for a stopwatch feature. This should be implemented ๐Ÿ‘€

block-externalBookmarks

Add a block that allows the user to define links to quickly open a defined website. Tap and go.

Need to quickly query something? tap

Settings panel in GUI

There needs to be a settings panel within the GUI when in editing mode.
Including:

  • Language
  • Background color / image
  • Tick time (useful if no milliseconds are used and the user wants to use less CPU time)

Add Grid System

Currently blocks can be moved completely freely.
There should be the option to activate a grid system so blocks are on the same lines as other blocks.

Maybe even like widgets on Android Homescreens with a "fixed" size and position.

Translation <html lang="en"> lang attribute

The site always says it's in english and so browsers might want to always translate the page (which might be very bad because ~60 page updates per second).
When translating the page it should add the according language attribute to <html>

Example:
<html lang="de">
<html lang="en">

block-analog clock

Add a block that looks like an analog clock. Maybe this would be a more extensive extension since this could use quite some ways to change it's look.

Some ideas:

  • Switch between 12/24 hour mode
  • Change background(color)
  • Change border width, color, ...
  • Change pointer style
  • Change number style

(This is an analog clock:) 1010870642

Export Config

Add the possibility to export/import the config. Shouldn't be much work.

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.