You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.2 KiB

Seepy

an alarm app for android/ios for people that sleep a bit too hard

Plan

The idea is to have an app that runs on ios and android because the "open source" (whatever that means these days) offerings are just basic clock apps that sure let you set alarms, but some people (like us) just will instantly press stop once the alarm rings, go back to sleep and completely forget we even did that once we finally wake up, or sometimes we just sleep through it.

So the idea is to have "challenges" like some sort of interaction you have to complete to actually stop the alarm, like for example

  • do X amount of steps (so like get out of bed and walk to turn it off)
  • scan X barcode / qrcode (like something in another room from where you sleep)
  • complete math equations
  • type back sentences that are shown to you
  • some type of minigame you need to get through etc etc

The alarms will not stop until either you complete said challenge you chose for yourself or X time has passed to not make your neighboors want to murder you just in case (which will also be configurable). Then all of the classic alarm stuff like configurable/disableable snooze etc.

Also another feature would be integrated "loud" ringtones to pick from, because most alarm apps just use the default sounds provided by ios/android and these just don't wake up people like us.

The one thing this probably won't help with is if you develop the sleepy brain instict of pressing the hotkeys to turn off your phone (sure you can do trickery at least on android to "prevent" software initiated shutdown but sleepy brain adapts faster than you would think).

If this feels similar to any other app you may have already tried or heart about, it obviously is not and I came up with all of this on my own for legal reasons (i love capitalism and google play services /sarcastic).

Development

This app runs on Node.js so you need that and also npm/yarn to install the dependencies.

$ yarn

$ yarn dev

Ionic ?

I am not a low level nerd, I know javascript and node.js, and do not have the wish to learn/maintain seperate codebases of native code for both ios/android and Ionic seems like one of the bigger players (all i could really see is either React Native or Ionic tbh, i don't want to start with a half assed "weekend project" that lacks every feature imaginable and will be abandoned in a few months) in the Node.js "cross platform mobile development" space and the learning curve seems relatively fine to me. It does give me strong "premium capitalsm open source" software vibes which... I mean, its the state of everything in tech sadly these days so can't do much about that.

I'm certain (although admittedly, didn't check) they include a bunch horrific privacy breaching trackers and shit in builds but I'll figure that out when the time comes.

Testing

Unit

$ yarn test.unit

E2E

You need cypress dependencies, see https://docs.cypress.io/guides/continuous-integration/introduction#Dependencies on how to install them.

$ yarn test.e2e

FYI, I fucking despise Cypress the devs are a bunch of corporate "premium paid open-source" wanks that deserve no respect and should be made fun of endlessly but Ionic uses it in the boilerplate and I'm lazy.