/persistamp

This 'productivity-positivity' app promotes good habits with positive reinforcement! Create and keep track of your good habits. Analyze habit trends over time. Stay motivated by creating rewards in a reward shop. Earn points by keeping up good habits. Redeem those hard-won points on rewards!

Primary LanguagePython

JavaScript React CSS3 Docker Python Flask SQLAlchemy PostgreSQL

ID Navigation Card

Persistamp ๐Ÿข

A Motivational 'Good Activities' Positivity App

TOC About โ— Features โ— How It Works โ— Installation โ— Development โ— Contact Us

This 'productivity-positivity' app promotes good activities with positive reinforcement! ๐ŸŒฑ Create and keep track of your good activities. ๐Ÿ–๏ธ Analyze activity trends over time. ๐Ÿ’ฏ Stay motivated by creating rewards in a reward shop. ๐ŸŽ Earn points by keeping up good activities. ๐Ÿ’Ž Redeem those hard-won points on rewards! ๐Ÿงพ

Dashboard webpage for Persistamp

Try the Demo!

Persistamp


About Persistamp

[ WEBSITE: https://persistamp.herokuapp.com ] (Inspired by mobile app Loop Activity Tracker.)

Animated GIF of a program card for chore-related activities.

Persistamp's design is inspired by reward cards and sticker reward systems. The visually playful 'program card' system, emulating the style of loyalty reward cards, is meant to encourage users to track their activities by 'stamping' successful days on their personalized cards. The user can view each activity's history analytics, such as a line graph, calendar, and statistics like longest streak.

With each stamp, the user gains points for the program the activity is included in. A program's reward shop can be stocked by the user with their own custom reward ideas ex. 'Take a day off', 'Enjoy a pumpkin spice latte', 'Play games for 1 hour', and set their cost, quantity, and custom color/icon appearance. Receipt rewards are displayed for posterity in a receipt-style log as 'proof of their purchase'.


Features

  • Create custom categories for activities with 'program cards'.
  • Add activities to programs, then stamp off every day a activity is fulfilled.
  • Set a activity's 'frequency'. Checkmarks will show when the week's goal is fulfilled.
  • Earn a 'reward point' for every activity stamp.
  • View a activity's history analytics through provided statistics, a line graph, and mini-calendar.
  • Share a activity's details or keep it private with a 'Public-Private' toggle.
  • Each program features a reward shop. Create rewards with a custom cost and (opt) quantity.
  • Use a program's points to redeem rewards. See it logged in a redemption history.
  • Customize the appearance of programs, activities, and rewards with a choice of color and icon.

Future Stretch Goals

  • Add friends
  • Accountability buddies
  • Messaging
  • User Profile page
  • Public/private user profile, programs
  • Custom frequency options to allow from 'out of any number', rather than only by 'week'. Ex. '3 days out of 30'.
  • (low) Option to archive and hide-archive activities.

How It Works

ID Navigation Card

Tip: This ID card also works as the site's main navigation. Note the red button! It has many important uses, depending on the webpage.

Users can:

  1. Make a program card
  2. Add good activities
  3. Stamp successful days
  4. View activity history & details
  5. Create rewards
  6. Redeem rewards with points

1. Make a program card

Program cards

  • To create a program, click the red stamp icon labeled 'Add' on your ID Card in the top-left corner.
  • Add a title, description (optional), color, and icon.
  • To edit or delete a program, click the pencil in the program's top-left corner (it will appear when you hover/click the card).
  • Tip: The color and icon of new programs default to your user setting icon and settings! Click the green 'Settings' button on your ID card to change them.

Program Ideas?

  • Exercise, Mental Health, Healthy Diet
  • Chores, Errands, Adulting Tasks
  • Learning, Self-teaching, Self-improvement
  • Social Obligations, Networking, Time for Loved Ones

Program form

2. Add good activities

Activity form

  • To create a activity, click the + icon in the program card's top-left corner (hover/click card to see).
  • Add a title, description (optional), color, and icon.
  • Select a frequency. How many days per week is your goal?
  • To edit or delete a activity, click the circled icon on the activity's left side.
  • Tip: The color and icon default to the program's color/icon settings!
  • Tip: Change the order of activities with drag-n-drop.

Activity Ideas?

  • Chores: do the dishes, wash laundry, cook a healthy meal, take out trash
  • Socially: call mom, check e-mail, apply to jobs, send thank-you letters
  • Hobbies: read a book, draw for 10 minutes, bake bread, try a new recipe
  • Avoiding bad activities: don't smoke, don't doomscroll more than 30min, don't eat junk food

3. Stamp successful days

  • To add a stamp, click empty spots in the activity card to mark the day fulfilled for that activity.
  • To undo a stamp, reclick the stamp.
  • With enough stamps for a activity's frequency goal, any unstamped spots will now show a checkmark.
  • Warning! You can only add stamps for within the last seven days, so check in at least once a week.

A activity row with stamps indicating fulfilled days.

4. View activity history and details

Line graph

  • To see a activity's 'details page', click the name of the activity in its program card.
  • See the activity's general information in the top-right corner.
  • To toggle between 'monthly' and 'weekly' view for the line graph, select an option from the dropdown.
  • The activity can be edited from this page with your ID card's red pencil icon.
  • Note about privacy! Check the top-right area to find a 'Private' toggle. This setting allows or restricts other people from being able to see this page. To share your a detail page, check that 'Private' is untoggled, then copy-paste the page's URL.

Line graph

5. Create rewards

Reward shop button in the top-left corner of program card

Reward form


  • To see a program's reward points and shop, click the shop icon at the top-right corner of a program card.
  • To create a reward, when in the reward shop, click the red trophy icon on your ID card.
  • Add a title, description (optional), color, and icon.
  • Decide the point cost of the reward.
  • (Optional) Specify an available quantity for the reward. Leave it blank for no limit.
  • To edit or delete a reward, click the pencil in the reward certificate's top-left corner.
  • Tip: The color and icon default to the program's color/icon settings!
  • Note: The 'limit per member' option is included for a future feature that allows more than one person to subscribe to a program. It ensures that no one program's member can redeem more than a set amount of that reward. Leave it blank to default to no limit.

Reward Ideas?

  • Something yummy, like a snack, favorite drink, or candy.
  • A guilt-free present to yourself, like a book, a new laptop, or flowers.
  • 'Fun time': Watch a movie, 2 hours of video games, free internet time.
  • A dream vacation, time off work, or a night out on the town!

Reward certificate for ice cream Reward certificate for a new bike Reward shop page screenshot

6. Redeem rewards with points

  • To redeem a reward, click the 'Redeem' button on a reward certificate.
  • Confirm that you really want to redeem this reward, and the cost will be taken out from your points.
  • See previously redeemed rewards, including when they were redeemed, in the shop's Reward History.
  • Indulge yourself in your redeemed reward, or show the receipt to whoever will treat you for it. ๐Ÿ’ž
  • Note: If a reward is unable to be redeemed (not enough points, zero quantity), the Redeem button will show red and be unclickable.
  • Note: There are no refunds! All reward shop sales are final ;D .
  • Warning! It is possible to go into debt with negative points for a program by buying rewards, then removing more stamps from the program card than there are remaining points. Debt must be made up before earning new points.

Redemption form

Receipt

Installation

  1. Clone this repository.

    git clone https://github.com/alimirakim/persistamp.git
  2. Install dependencies.

    pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
  3. Create a .env file based on the example with proper settings for your development environment.

  4. Setup your PostgreSQL user, password, and database and make sure it matches your .env file.

  5. Get into your pipenv, migrate your database, seed your database, and run your flask app.

    pipenv shell
    flask db upgrade
    python seeder.py
    flask run
  6. To run the React App in development, cd into the react-app directory, then run npm start.

IMPORTANT! If you add any python dependencies to your pipfiles, you'll need to regenerate your requirements.txt before deployment. You can do this by running:

pipenv lock -r > requirements.txt

ALSO IMPORTANT! psycopg2-binary MUST remain a dev dependency because you can't install it on apline-linux. There is a layer in the Dockerfile that will install psycopg2 (not binary) for us.

Development

DEV TOC Technologies โ— Concepts โ— Models โ— Routes โ— Wireframes โ— Dev Snapshots

This section is kept in a separate document HERE. It details the technical aspects of this project's development. A few sample snapshots are below from the development process.


Contact Us

Thank you for taking a look at Persistamp! :D Please feel free to reach out and ask us anything.

David Lee

(Full-stack developer, Open to work) Resume PDF David Lee's email LinkedIn AngelList GitHub dyclee

Alicia Mira Kim

(Full-stack developer, Open to work) Resume PDF Alicia's email Blog Linkedin AngelList Portfolio GitHub alimirakim