Skip to content

psrisuphan/wallet-plus

Repository files navigation

Wallet+ Logo

Wallet+

A modern, feature-rich personal finance tracker built with React Native & Firebase


Screenshots

Dashboard    Add Transaction    Wallets    Summary

Dashboard • Add Transaction • Wallets • Summary


Features

Collaborative Multi-Wallet Management

  • Shared Wallets: Join or invite others to collaborate on expense tracking via unique Wallet IDs.
  • Ownership Control: Owners can manage collaborators, browse participants, and remove members.
  • Customization: Personalize wallets with distinct icons, colors, and descriptions.
  • Real-time Sync: Instant balance updates across all connected devices using Firebase.

Advanced Transaction Tracking

  • Smart Logging: Effortless entry for income and expenses with intelligent category mapping.
  • Rich Filtering: Search and filter history by amount range, category, or date frequency.
  • Custom Date Ranges: Flexible period filtering including Daily, Weekly, Monthly, Yearly, and Custom Range selections.
  • Image Attachments: Securely attach photos of receipts, bills, or invoices to any transaction.
  • Contextual Notifications: Real-time warnings for insufficient balance or negative starting amounts.

Premium Experience & UX

  • Haptic Feedback System: Tactical responses for all core interactions (toggling filters, submitting forms, deletions, and error validations).
  • Transaction Detail Modal: Elegant full-screen previews with high-resolution image rendering and direct navigation to edit mode.
  • Smart Persistence: Automatic login sessions and secure local caching for immediate data access.
  • Dynamic Onboarding: Context-aware empty states and guidance for new users.

Analytics & Summary

  • Visual Breakdown: Dynamic charts and percentage-based category consumption bars.
  • Monthly Comparison: Longitudinal trend analysis to track financial growth or spending patterns.
  • Period Synthesis: Aggregated totals that calculate net changes over specific timeframes.

Security & Privacy

The application follows a Security-First architecture:

  • Client-Side Keys: Firebase API keys are deliberately included in the repository for "one-click" collaboration. Per Firebase security documentation, these are identifiers, not secrets.
  • Server-Side Security: Data privacy is strictly enforced via Cloud Firestore Security Rules. Even with the API keys, no user can read or modify data that does not belong to them.
  • Authentication: All features require a secure login via Firebase Authentication.

Tech Stack

Layer Technology
Framework React Native 0.83 with Expo 55
Language TypeScript 5.9
Navigation Expo Router (file-based routing)
Backend Firebase (Firestore + Auth)
State React Hooks and Context API
Haptics expo-haptics
Icons @expo/vector-icons (Ionicons)
Persistence AsyncStorage & Firestore Persistence

Project Structure

wallet-plus/
├── app/
│   ├── (auth)/                     # Authentication screens
│   ├── (tabs)/                     # Main app navigation
│   │   ├── index.tsx               # Dashboard view
│   │   ├── wallet/                 # Wallet management
│   │   ├── transactions/           # Transaction history & editing
│   │   ├── summary/                # Analytics & reports
│   │   └── settings/               # User profile & preferences
│   └── _layout.tsx                 # Root layout & auth guards
├── components/                     # Shared UI components
├── constants/                      # Theme colors & category definitions
├── utils/
│   └── haptics.ts                  # Standardized haptic feedback logic
├── types/                          # TypeScript definitions
├── assets/                         # Static resources
└── firebaseConfig.ts               # Firebase initialization

Getting Started

Prerequisites

  • Node.js (v18 or later)
  • npm (v9 or later)
  • Expo Go app for testing on physical devices

Installation

  1. Clone the repository

    git clone https://github.com/psrisuphan/wallet-plus.git
    cd wallet-plus
  2. Install dependencies

    npm install
  3. Environment Setup The project is pre-configured with the default Firebase project credentials. Ensure Firestore and Authentication are enabled in your Firebase console if you're using your own project.

  4. Launch Application

    npx expo start

Roadmap

  • Multi-wallet management
  • Transaction tracking with categories
  • Image note attachments for receipts
  • Financial summary with period filtering
  • Monthly comparison analytics
  • Transaction detail modal
  • Advanced transaction filtering (amount/date/category)
  • Shared wallets (collaboration via Wallet ID)
  • Premium haptic feedback system
  • Dark mode support
  • Budget goals & alerts
  • Export transactions (CSV / PDF)
  • Push notifications for spending limits
  • Multi-currency support

Contributing

This is currently a private project. If you'd like to contribute, please contact the repository owner to discuss your proposed changes.


License

This project is private and not open-sourced. All rights reserved.


Built with passion for modern personal finance

About

Wallet+ is an income and expense tracker mobile application, develop using Firebase to handle backend, authentication and database, React Native and Expo to handle frontend processes, and UI/UX for mobile platforms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors