Daily push buttons
π± buttons is a web service to help you keep doing things everyday, especially the things which you tend to forget to do, but is beneficial if you do it everyday. Typical examples are learning language, learning music, workout etc.
The followings are examples of tasks:
- Learn a word in Spanish.
- Learn a Chinese character.
- Read a chapter of Bible.
- Play a piano.
- Work out.
How to set up tasks in π± buttons? The followings are guidelines:
- Do:
- Create a task easy to accomplish (in less than 10 min.).
- Create a creative, constructive task.
- Create a task easy to start.
- Revisit the definition of tasks continuously and keep them in reasonable and meaningful state.
- Don't
- Create a task too difficult to accomplish in a single day. (ex.
Post an blog article
is too difficult.Write a part of article
is a better alternative.) - Create a task hard to keep doing everyday. (ex.
Climb a mountain
if you're not a moutain guide.) - Make a (difficult) finish condition. (ex
Win 3 games in row on Splatoon
)
- Create a task too difficult to accomplish in a single day. (ex.
π± buttons is a live web service, and its source code, architecture, and documentation are available online on github.
- Now ( web server https://zeit.co/now )
- Auth0 ( id https://auth0.com/ )
- mlab ( mongodb as a service https://mlab.com/ )
- Netlify ( static site hosting https://netlify.com/ )
- JAMstack ( https://jamstack.org/ )
- DDD ( https://en.wikipedia.org/wiki/Domain-driven_design )
- MongoDB ( https://www.mongodb.com/ )
- docker ( for mongodb preparation https://www.docker.com/ )
- bulbo ( static site generator based on gulp https://github.com/kt3k/bulbo )
- node.js ( https://nodejs.org/ )
- express ( https://expressjs.com/ )
- capsid.js ( component based dom programming https://capsid.js.org/ )
- cal-heatmap ( calendar heatmap https://cal-heatmap.com/ )
- bulma ( css framework https://bulma.io/ )
- date-fns ( https://date-fns.org/ )
- CircleCI ( https://circleci.com/ )
- Codecov ( coverage SaaS https://codecov.io/ )
- kocha ( test runner, mocha clone https://github.com/kt3k/kocha )
- power-assert ( assertion https://github.com/power-assert-js/power-assert )
- nyc ( coverage https://github.com/istanbuljs/nyc )
- standard ( linter https://standardjs.com/ )
- prettier ( formatter https://prettier.io/ )
- Free! β¨π
See domaindoc.
Start mongo in a terminal:
./sakuw mongo
Then in a different console, run tests:
./sakuw kocha
Start mongo:
./sakuw mongo
Then in a different console, run the server:
./sakuw start
This runs local static site and lcoal api server.
- auth: Your buttons, Your checks
- no auth: Login/Sign up link and list of the users
(/profile.html?user=:user)
- The user's check calendar
(/day.html?user=:user&date=YYYY-MM-DD)
- The user's single day contribution
- The settings of profile and buttons
- The settings of displayId on onboarding steps
- The settings of buttons and profile
- Get the authenticated user
- Modify the authenticated user
- Sets the display
- Gets my buttons
- Create a new button
- Modify my button
- Delete my button
- Check the button
- Uncheck the button push
- Get the users
- Get the user's profile by the display id
- Get the user's checks in the range of date
- Get the user's check by the date
- Get recent activities.
- Modify the check by the id
- Delete a check by the id
- Go to /
- Auth0 login
- Go to /set-id.html
- Take displayId
- Go to /settings.html
- Set up 1 - 4 buttons
- Go to /
- Done
- Go to / (loggedIn)
- Push buttons
- Done
- Go to /
- Browse my checks
- Done
- Go to /users.html
- See the list of users
- Select the name of a user
- Go to /:user/checks
- See :user's checks
- Done
- Go to /settings.html
- Modify my buttons
- Push save button
- Done
- Go to /settings.html
- Modify my profile
- Push save button
- Done