Skip to content

nsk6704/UpWell

Repository files navigation

UpWell

UpWell

Personal Wellness & Finance Tracker

Your all-in-one companion for tracking habits, finances, and well-being.

FeaturesGetting StartedTech StackContributing

React Native Expo TypeScript Platform License


Overview

UpWell is a cross-platform mobile application designed to help you build lasting healthy routines and financial discipline. With unified tracking across expenses, workouts, and mindfulness practices, UpWell keeps all aspects of your personal wellness in one place.

Key Highlights:

  • Unified tracking for finances, health, and mindfulness
  • Gamification system with XP, levels, and streaks
  • Modern, customizable interface with light and dark themes
  • Privacy-first approach with local SQLite storage
  • Complete data ownership with export/import capabilities

Features

Financial Management

Track your financial health with comprehensive expense logging and budget management.

  • Expense Tracking — Log transactions with customizable categories
  • Budget Monitoring — Set monthly budgets and track spending in real-time
  • Savings Goals — Create financial goals with progress visualization
  • Spending Analytics — Understand your spending patterns at a glance

Health & Fitness

Monitor your physical well-being and build consistent exercise habits.

  • Workout Logging — Record exercises with duration, calories, and notes
  • Hydration Tracking — Track daily water intake with visual progress indicators
  • Meal Logging — Document meals with nutritional information
  • Activity Streaks — Build consistency with daily streak tracking

Mindfulness & Well-being

Cultivate mental wellness through journaling and meditation practices.

  • Meditation Sessions — Log guided meditations, timers, or breathing exercises
  • Digital Journaling — Write unlimited entries with mood tracking
  • Gratitude Practice — Daily gratitude logging for positive mindset cultivation
  • Mood Tracking — Monitor emotional patterns over time

Gamification

Stay motivated with a comprehensive progression system.

  • Experience Points — Earn XP for every positive action across categories
  • Level Progression — Advance through 12+ levels from Beginner to Immortal
  • Multi-Category Streaks — Track streaks for financial, health, and mindfulness
  • Streak Visualizer — GitHub-style heatmap showing your activity over time
  • Visual Progress — See your growth across all life areas

Customization

Personalize your experience to match your preferences.

  • Theme Options — Choose from automatic, light, or dark mode
  • Style Variants — Select from modern, minimal, classic, or vibrant designs
  • Flexible Goals — Customize daily targets for water, meditation, calories, and more
  • Streak Modes — Toggle between challenge mode and easy mode

Data & Privacy

Your data stays yours, stored securely on your device.

  • Local Storage — All data stored in a secure SQLite database
  • Export/Import — JSON-based backup system for data portability
  • No Limits — Store unlimited entries across all categories
  • Privacy First — No cloud sync, no third-party access, complete control

Screenshots

Screenshots coming soon


Getting Started

Prerequisites

  • Node.js 18 or higher
  • npm or yarn package manager
  • Expo CLI (installed automatically with dependencies)

Installation

# Clone the repository
git clone https://github.com/yourusername/upwell.git

# Navigate to the project directory
cd upwell

# Install dependencies
npm install

Development

Start the development server:

npm start

Run on specific platforms:

npm run ios       # iOS simulator
npm run android   # Android emulator
npm run web       # Web browser

Building for Production

# Android
npm run build:android

# iOS
npm run build:ios

Usage

Initial Setup

  1. Launch the app and create your profile
  2. Configure daily goals (water intake, meditation time, budget)
  3. Select your preferred theme and style variant
  4. Choose your streak mode preference

Daily Workflow

  1. Log activities throughout the day (expenses, workouts, meals, meditation)
  2. Earn experience points for completed actions
  3. Maintain streaks across different categories
  4. Review progress on your home dashboard

Data Management

  • Backup: Settings → Export Data → Save JSON file
  • Restore: Settings → Import Data → Select backup file
  • Reset: Settings → Advanced → Reset All Data

Tech Stack

Core

  • React Native — Cross-platform mobile framework
  • Expo — Development platform and build tooling
  • TypeScript — Type-safe JavaScript

State & Storage

  • React Context API — Global state management
  • expo-sqlite — Local database
  • AsyncStorage — Lightweight key-value storage

Navigation & UI

Utilities

  • date-fns — Date manipulation and formatting
  • React Hooks — Modern React patterns

Project Structure

upwell/
├── src/
│   ├── components/          # Reusable UI components
│   │   ├── common/         # Buttons, cards, error boundaries
│   │   └── gamification/   # XP bars, streaks, level indicators
│   ├── constants/          # App configuration and constants
│   │   ├── gamification.ts # XP rewards, level thresholds, categories
│   │   └── theme.ts        # Colors, spacing, typography
│   ├── context/            # React Context providers
│   │   ├── AppContext.tsx  # Global application state
│   │   └── ThemeContext.tsx # Theme and style management
│   ├── lib/                # Core utilities and services
│   │   └── database.ts     # SQLite operations and migrations
│   ├── navigation/         # Navigation configuration
│   │   └── MainNavigator.tsx
│   ├── screens/            # Application screens
│   │   ├── HomeScreen.tsx
│   │   ├── FinancialScreen.tsx
│   │   ├── HealthScreen.tsx
│   │   ├── MindfulnessScreen.tsx
│   │   ├── ProfileScreen.tsx
│   │   └── SettingsScreen.tsx
│   └── types/              # TypeScript type definitions
│       └── index.ts
├── assets/                 # Static assets (images, icons, fonts)
├── app.json               # Expo configuration
├── package.json           # Dependencies and scripts
├── tsconfig.json          # TypeScript configuration
└── README.md             # Documentation

Contributing

Contributions are welcome and appreciated. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m 'Add feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

Development Guidelines

  • Write clean, typed TypeScript code
  • Follow existing code patterns and conventions
  • Test thoroughly on both iOS and Android
  • Ensure UI consistency across light and dark themes
  • Keep components modular and reusable
  • Update documentation for new features

Code Standards

  • Use functional components with React Hooks
  • Implement proper TypeScript types for all props and state
  • Follow React Native and Expo best practices
  • Write self-documenting code with clear naming

License

This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.


Acknowledgments

Built with:


Support

For bug reports and feature requests, please open an issue.


Made by Saketh

About

Upwell is a cross-platform mobile application designed to help you build lasting healthy routines and financial discipline.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors