Giter VIP home page Giter VIP logo

dailymotivationals's People

Contributors

marcofeltmann avatar

Watchers

 avatar

dailymotivationals's Issues

Implemented Siri support

It would be nice to have Siri motivating me after saying something like "Hey Siri, chear me up!"

Discussion

Siri should not use the Pick Of The Day feature since she simply will repeat herself.
She may need an own randomization algorithm without or with some very short caching.

Implemented `Pick Of The Day` algorithm

Requirements

  • has one Motivational Data type
  • has one "valid until" date
  • returns identical Motivational Data type as long as "valid until" is in the future

Implement MotivationalProvider

Requirements

Implements the MotivationalProviding protocol

Since I expect the amount of data to be somewhat huge (having one year without repetitions means 366 items) it must be fast.

Implemented Media Type

Requirements

A Media Type can exclusively hold one of the following media files:

  • image
  • audio
  • video

In contrast to earlier approaches it must not handle any interaction with the represented media since this is application space activity.

Implemented Motivational Data type

Requirements

  • has an unique identifier
  • has a text message
  • has an optional media type
  • may contain several tags, where "several" means element N0!

Implement UUID Cache

Requirements

An object implementing CacheProviding must be provided:

  • cache is valid even if the app restarts
  • caches new item as long as there are some new items
    So it doesn't cache randomly but only the difference of ALL uuids and ALREADY CACHED uuids

Define and implement data storage

Requirements

Since we now need some real deal there are decisions to make:

Which storage to use?

  • Apples Core Data provides great iCloud interaction and is perfect for Apple Universe
  • Realm is a great alternative when it comes to compatibility outside the Apple bubble
  • SQLite is the One-That-Works-Everywhere approach

Stuff like JSON, XML or binary plist will not be considered since they are memory-consuming when you try to filter or search for some specific piece of data.

Implemented Tag

Requirements

  • has a title

  • optionally has one string for finer limitations

  • since there may be date and time strings in the limitation fields they must conform to ISO 8601

Examples

Title without limitation

title: "self esteem"

title: "duplicate"

Title with limitiation

// Specify which sub-part this addresses
title: "self esteem"
limitation: "ability"

// Specify which item is duplicated
title: "duplicate"
limitation: "uuid:1983A8-12BC78-00CFDE-128793"

// Or just do something else...
title: "last picked"
limitation: "2020-02-15T09:12:45+01:00"

title: "submitted"
limitation: "by Effchen"

title: "imported"
limitation: "2020-01-31T01:23:01Z"

Implemented Widget

It would be nice to have quick access to the Motivational Of The Day without the need of starting the app.

Discussion

How should this look like? Message only? Message with emoji placeholder for attached media type? Preview the media type?

Implemented User Notifications

On each day the user should be notificated to get a new motivational (if settings allow notifications for the app)

Discussion

Simply say "A new Motivational is available!" or more speaking "Todays Motivational: You are fucking Awesome! ๐Ÿ–ผ"?
The first seems somewhat useless, unless you want to be reminded to cheer yourself up since you always forget it.
The second one may render the whole "Motivational Of The Day" functionality of the application obsolete since it provides another UI for this.

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.