Skip to content

RN-WALLET is a full-stack expense tracker built with React Native (Expo) and Node.js + Express, powered by PostgreSQL (Neon), Clerk authentication, and Redis. It includes an ML microservice for automatic transaction categorization, real-time summaries, and custom analytics, delivering a secure and intelligent financial tracking experience.

License

Notifications You must be signed in to change notification settings

AnkitDimri4/RN-WALLET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


RN-WALLET

RN-WALLET is a full-stack expense tracking application consisting of a React Native (Expo) mobile app, a Node.js + Express backend, and a dedicated ML microservice for automatic transaction categorization. The project focuses on real-world authentication, clean API architecture, custom analytics, and ML-driven automation.

image image image image image image

Demo Video

Before ML integration:

  • Transactions required manual category selection
  • Auto-categorization unavailable
RN-WALLET.mp4

After ML integration:

  • Transactions automatically assigned a category if not selected
  • ML service fallback ensures robust assignment for unknown inputs
  • Real-time transaction creation and backend rendering
RN-WALLETV.1.mp4

After Analytics Integration

AnalyticsPageD.mp4

Mobile App (Expo)

The mobile app is built using Expo Router and Clerk authentication.

Key Features

  • Email + OTP authentication (Clerk)

  • Secure session storage

  • Transaction dashboard (Income, Expense, Balance)

  • Analytics Dashboard with charts:

    • Income vs Expense (Bar)
    • Monthly trends (Line)
    • Category-wise spending (Pie)
  • Add transaction with optional category

    • If not provided, category is predicted via ML service
  • Custom hooks for API & state management

  • Android & iOS support

Tech Stack

  • React Native - Cross-platform mobile app development

  • Expo - Fast development, build, and deployment

  • Expo Router - File-based navigation

  • Clerk (Expo SDK) - Secure user authentication

  • Analytics & Visualization

  • react-native-chart-kit – Chart rendering

  • react-native-svg – SVG support for charts

    Folder: mobile/


Backend (API Server)

The backend exposes REST APIs for transaction management, analytics summaries, and ML integration.

Key Features

  • Express.js REST API

  • PostgreSQL (Neon) for persistent storage

  • Redis (Upstash) for caching & rate limiting

  • Clerk-based user authentication & JWT validation

  • ML Service Integration

    • Predicts transaction category if not provided
    • Fallback logic assigns "Other" if prediction fails
    • Cached results reduce repeated ML calls
  • Clean MVC-style architecture

Tech Stack

  • Node.js & Express.js

  • PostgreSQL (Neon) – Cloud-hosted relational database

  • Redis (Upstash) – Caching and session optimization

  • Clerk Authentication – Backend auth & JWT verification

  • ML Microservice – Auto expense category prediction

  • Render – Backend & ML services deployment

    Folder: backend/


## System Architecture

Mobile App (Expo / React Native)
        |
        v
Node.js Backend (Auth, DB, Business Logic)
        |
        v
ML Microservice (FastAPI + NLP Model)

ML Tech Stack

  • Python
  • FastAPI
  • Scikit-learn
  • Joblib
  • Uvicorn

📊 Analytics & Insights

RN-WALLET includes a custom analytics engine that transforms raw transaction data into meaningful insights.

Analytics Capabilities

  • Monthly transaction filtering
  • Income, expense & balance aggregation
  • Category-wise spending analysis
  • Chart-based visualization using reusable components

This logic powers the Analytics Dashboard in the mobile app.


ML Service

A separate ML microservice is responsible for automatic transaction categorization.

Highlights

  • Python-based service
  • Trained text classification model
  • Predicts category from transaction title
  • Integrated via backend API

📁 Folder: ml-service/


Project Structure


RN-WALLET/
├── backend/     # Express + PostgreSQL API
├── mobile/      # Expo React Native App
├── ml-service
├── README.md    # Project overview
└── LICENSE


Getting Started

Each folder (backend and mobile) has its own README with setup instructions.
Clone the repo and follow the respective README based on what you want to run.

Important notes regarding ML service:

  • The ML service is hosted separately and connected via an environment variable (ML_API_URL).
  • Transactions without categories will automatically get categorized by the ML service.
  • Fallback logic ensures “Other” is assigned if prediction fails.

Author

Ankit Dimri
📍 Dehradun, India

image GitHub image LinkedIn imageLeetCode


Note

This project demonstrates modern mobile development, secure authentication, scalable backend design, custom analytics, and ML-powered automation in a production-style architecture.


Created by Ankit Dimri © 2026

About

RN-WALLET is a full-stack expense tracker built with React Native (Expo) and Node.js + Express, powered by PostgreSQL (Neon), Clerk authentication, and Redis. It includes an ML microservice for automatic transaction categorization, real-time summaries, and custom analytics, delivering a secure and intelligent financial tracking experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published