GithubHelp home page GithubHelp logo

babybuddy / babybuddy-alexa-skill Goto Github PK

View Code? Open in Web Editor NEW
13.0 3.0 5.0 242 KB

License: BSD 2-Clause "Simplified" License

Shell 2.81% JavaScript 9.55% TypeScript 87.63%
alexa alexa-skill alexa-custom-skill baby hacktoberfest parenting

babybuddy-alexa-skill's Introduction

Baby Buddy

License Gitter CI Status Coverage Status Gitpod ready-to-code Open in GitHub Codespaces ready-to-code Code style: black

A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.

Baby Buddy desktop view

Baby Buddy mobile views

๐Ÿ‘พ Demo

A demo of Baby Buddy is available. The demo instance resets every hour. Login credentials are:

  • Username: admin
  • Password: admin

๐Ÿ“˜ Documentation

Visit https://docs.baby-buddy.net for full documentation.

Additional documentation

๐Ÿ—บ๏ธ Languages

Baby Buddy is available in a variety of languages thanks to the efforts of numerous translators. Language can be set on a per-user basis from the user settings page (/user/settings/). See Contributing for information about how to create/update translations.

Available languages

๐Ÿ‡ง๐Ÿ‡ท Brazilian Portuguese, ๐Ÿ‡ช๐Ÿ‡ธ Catalan, ๐Ÿ‡จ๐Ÿ‡ณ Chinese (simplified), :cz: Czech, ๐Ÿ‡ฉ๐Ÿ‡ฐ Danish, ๐Ÿ‡ณ๐Ÿ‡ฑ Dutch, ๐Ÿ‡ฌ๐Ÿ‡ง English (U.K.), ๐Ÿ‡บ๐Ÿ‡ธ English (U.S.) (base), ๐Ÿ‡ซ๐Ÿ‡ฎ Finnish, ๐Ÿ‡ซ๐Ÿ‡ท French, ๐Ÿ‡ฉ๐Ÿ‡ช German, ๐Ÿ‡ฎ๐Ÿ‡ฑ Hebrew, ๐Ÿ‡ญ๐Ÿ‡บ Hungarian, ๐Ÿ‡ฎ๐Ÿ‡น Italian, ๐Ÿ‡ฏ๐Ÿ‡ต Japanese, ๐Ÿ‡ณ๐Ÿ‡ด Norwegian Bokmรฅl, ๐Ÿ‡ต๐Ÿ‡ฑ Polish, ๐Ÿ‡ต๐Ÿ‡น Portuguese, ๐Ÿ‡ท๐Ÿ‡บ Russian, ๐Ÿ‡ฒ๐Ÿ‡ฝ ๐Ÿ‡ช๐Ÿ‡ธ Spanish, ๐Ÿ‡ธ๐Ÿ‡ช Swedish, ๐Ÿ‡น๐Ÿ‡ท Turkish, ๐Ÿ‡บ๐Ÿ‡ฆ Ukrainian

๐ŸŒ Baby Buddy on the Web

This is a non-exhaustive list of neat projects and blog posts that either extend or use Baby Buddy in fun ways. If you have a project to share please open a PR adding it here or reach out via GitHub Issues or Discussions or on Gitter!

Smart home

Hardware

Mobile

Videos

Other

๐Ÿ” Reporting Vulnerabilities

See SECURITY.md for information about where and how to report potential Baby Buddy vulnerabilities.

โค๏ธ Support

Contribution and sponsorship

Contribute or sponsor Baby Buddy's contributors using any of the following methods:

Tools and infrastructure

The following organizations and services support Baby Buddy contributors in various ways (software licensing, service credits, etc.).

Some of the links below use referral codes -- all referral proceeds are treated as contributions to the Baby Buddy project.

DigitalOcean Referral Badge JetBrains Logo (Main) logo. POEditor

babybuddy-alexa-skill's People

Contributors

btoconnor avatar cdubz avatar rplankenhorn avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

babybuddy-alexa-skill's Issues

More information in diaper change intent

I'd like to be able to say "Alexa, record a Wet/Solid/Full diaper change" rather than have to go through a series of yes / no prompts each time.

I tried to add this myself (I have no experience with custom alexa skills, but willing to learn with some pointers) but I couldn't figure out how to get the skill to stop asking "Was it wet?" even if I commented out the getSlotValue(...) call.

I tried adding the extra samples to the en-US.json file, with a new diaper type but nothing I tried stopped the question being asked. Happy to provide my diff as-is or just simply accept pointers.

Store information about feeding timers at the start

Storing information about the timer when it's created I think would help alleviate some of the back and forth with Alexa when completing timers, most notably the feeding timer.

Ie, it would be nice to say:

Alexa, ask Baby Buddy to start a bottle feeding [for name]

and not have to specify the method when the feeding is concluded, since we specified at the start that it was a bottle feeding.

Similarly, something like:

Alexa, ask Baby Buddy to start a left breast feeding [for name]

would also allow us to fill in some of the details without resorting to yes / no / multiple choices in a row at the conclusion.

I am fairly certain this would require changes to be made on the core Baby Buddy application, and there are a lot of ways to go about that which would need to be discussed. However, I wanted to gauge interest in doing that up front before going down too many paths on how to achieve this[1]. I am pretty sure I can take on the work for this if the concept itself is desired, depending on the implementation method of course

1 - My first instinct would be to just store some structured metadata in a denormalized column on the timer - like a JSON structure that stores stuff like type (feeding, tummy time, sleep), and any other data about the type of timer. In theory you can accomplish this stuff with multi table / single table inheritance but that gets silly complicated for a few attributes. Django itself doesn't seem to like single table inheritance as a concept (which, I guess is a fine opinion, but the feature is great for stuff like this). Storing a little JSON structure could get unwieldy, but that's one of those "cross the bridge when you get there" kind of things for me. "It's as complicated as you allow it to be" comes to mind.

Selectively prompt for additional details on diaper changes

Being prompted by Alexa on every diaper change with "Do you want to add more details like amount and color?" is a little tedious after every diaper change if you're not interested in recording that information (this is especially comical if you specify "Alexa, tell Baby Buddy to record an empty diaper change").

I'd like to propose the following changes:

  1. Do not prompt for additional information if it's an empty diaper change.
  2. If the contents are known in the initial prompt (ie, "Alexa, tell Baby Buddy to record a {wet, solid, full, empty} diaper change"), and the previous N[1] diapers have not included color or amount, don't prompt for additional information - just record the diaper change. If the contents are not known in the initial prompt, still prompt for wet / solid, and then again for additional information in accordance with the rules above.
  3. If there are diaper changes with amount / color - ask if the user would like to record those.
  4. Do not prompt for color if it's not a solid (or full) diaper change

Thoughts? I can take this work on, but I want to make sure I've got the flow chart correct. I'm a relatively new parent, but the doctors have made it seem like they only want to record the information above in selective circumstances, of which currently do not apply to us, and I'd like to simplify the process of recording diaper changes a bit.

1 - My first instict here is to either do simply the last diaper change (easy enough to retrieve - and prompt if there hasn't been any yet) or simply look at some duration, like last 24 / 48 hours or week or something like that. There are more complicated options, but AFAICT they'd require coordination with the main project and that feels like a bigger lift and for not much gain.

Diaper change intent handler no longer working?

I was finishing up my work on #15 , and I started getting a bunch of weird errors. I then went and checked out master and I'm getting the same errors - any time I try and specify contents in the initial utterance, I get an error "Sorry, I'm having trouble, please try in a little while.". Not specifying any contents in the initial utterance makes it so that wet / solid never get filled in.

Is this a problem for others? I have no idea how this would start happening on its own, but before I wipe out the entire skill on my account and re-set it up, I'm curious if anyone else is seeing this error and it's a change on the alexa developer end.

Testing Skill error

Let me preface this with I am no developer. But I have been getting a lot of use out of Baby Buddy and would like to link this skill up to my server.

I have gone through all the steps and got the skill deployed, but when I test it in my browser Alexa just says "Sorry, I had trouble doing what you asked. Please try again."

Is there anything I am missing that I have to do to get this skill to work? I did nothing other than follow the instructions given here. I can post any logs or anything else needed to help.

Support additional HTTP headers from Alexa to Baby Buddy server

My Baby Buddy instance is protected by Cloudflare Zero Trust. In order for the Alexa command to reach the baby buddy server, I need to specify Cloudflare Service Token headers in the request from the Alexa skill in order to bypass the login screen.

I have this working totally fine in a relatively straightforward patch, but it is specific to the Cloudflare headers. I'd be happy to clean this up and submit a PR as-is and just have support for Cloudflare, but I'd also be open to a discussion about how to specify this a little more generically (if easy enough).

Thoughts?

I can provide a quick gist too which shows the scope of the changes (it's fairly minimal).

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.