Skip to content

aar0gya/react-native-wallet-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° React Native Wallet App

Cover Image

A full-stack personal finance wallet application built using React Native, Expo, Express, Clerk, Neon PostgreSQL, and Redis. This project demonstrates how to build a complete production-ready mobile application with authentication, database integration, cloud deployment, and real-time updates β€” all without needing Swift, Kotlin, or native modules.

This project demonstrates how to build a fully functional, production-ready mobile finance tracker using React Native + Expo alongside a Node.js/Express backend with:

⦁ Clerk authentication (with email code verification)

⦁ Neon PostgreSQL for database storage

⦁ Redis rate limiting

⦁ Deployed backend and real device mobile support

Users can:

⦁ Sign up & log in using a 6-digit email code

⦁ View their current wallet balance

⦁ Create income or expense transactions

⦁ Delete transactions, with recalculations

⦁ Pull-to-refresh to sync with backend

⦁ Log out securely

Perfect for developers looking to learn how to connect a mobile frontend to a real backend with secure user accounts and persistent cloud data storage.


πŸš€ Features

✨ Mobile App (Expo & React Native)

  • πŸ“± Runs on iOS & Android

  • πŸ” Email-based login & signup (6-digit verification code) using Clerk

  • πŸ’Ό Home screen showing:

    • Current balance
    • List of transactions
  • βž• Add income and expense transactions

  • πŸ”„ Pull-to-refresh functionality

  • ❌ Delete transactions to update balance instantly

  • πŸšͺ Logout routing that safely returns users to auth pages

πŸ–₯ Backend (Express API)

  • 🌐 Fully REST-based Node.js server
  • πŸ—„ PostgreSQL database hosted on Neon
  • βš™ Auth middleware using Clerk
  • πŸ“¦ Redis-based rate limiting for protection
  • ☁ Easily deployable on cloud services

🧠 What You'll Learn

By building this project, you’ll master:

  • Building a mobile app with React Native & Expo
  • Creating a backend with Express & PostgreSQL
  • Real-world user authentication with Clerk
  • Structured full-stack communication between mobile β†’ backend β†’ database
  • Implementing rate limiting using Redis
  • Deployment of both backend & mobile applications
  • Managing navigation & global app state cleanly

Perfect for:

  • Beginners building their first full-stack mobile app
  • React developers expanding into React Native
  • Anyone needing a realistic production-ready example

πŸ“Έ App Screenshots

Screenshot_2025-11-24-17-34-06-40_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-35-00-45_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-35-29-94_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-35-38-40_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-35-54-52_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-37-17-80_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-37-26-39_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-37-44-86_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-38-20-03_f73b71075b1de7323614b647fe394240

Screenshot_2025-11-24-17-38-43-75_f73b71075b1de7323614b647fe394240


πŸ›  Tech Stack

Frontend

  • React Native (Expo)
  • React Navigation
  • Async Storage
  • Clerk Auth SDK

Backend

  • Node.js + Express
  • PostgreSQL (Neon)
  • Redis (Rate Limiting)
  • Clerk Server SDK

πŸ“ Project Structure

.
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ src
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env
└── mobile
    β”œβ”€β”€ screens
    β”œβ”€β”€ components
    β”œβ”€β”€ package.json
    └── app.config.js

βš™ Environment Variables

Backend (/backend/.env)

PORT=5001
NODE_ENV=development

CLERK_PUBLISHABLE_KEY=<your_clerk_publishable_key>
CLERK_SECRET_KEY=<your_clerk_secret_key>

DATABASE_URL=<your_neon_postgres_connection_url>
REDIS_URL=<your_redis_connection_url>

Mobile (/mobile/.env)

EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=<your_clerk_key>

β–Ά Running The Project

1️⃣ Start Backend

cd backend
npm install
npm run dev

2️⃣ Start Mobile App

cd mobile
npm install
npx expo start

Scan the QR code or run the Android/iOS simulator.


πŸ“‘ Deployment

You can deploy using:

Backend:

  • Vercel
  • Render
  • Fly.io
  • Railway

Database:

  • Neon PostgreSQL (recommended)

Redis:

  • Upstash (free tiers available)

Mobile:

  • Expo EAS (supports OTA & store publishing)

πŸ“Œ Roadmap

  • Dark mode UI
  • Filtering & sorting transactions
  • Budget goals overview
  • Push notifications for expenses

🧾 License

This project is open-source β€” see LICENSE for details.


⭐ Support

If this project helps you:

  • Star ⭐ the repository
  • Share with developers getting into React Native

🧾 Note

This backend is an API server. Opening the Render URL in a browser will not show a webpage β€” it is meant to serve the mobile app. If you open it directly, you may see β€œCannot GET /”.

Thanks,

Happy coding!

aar0gya

About

A modern, full-stack React Native Wallet Application that allows users to track income and expenses in real time. The app includes backend API integration, secure authentication, cloud-hosted data storage, and attractive mobile UI screens that run seamlessly on both iOS and Android

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors