A cross-platform expense tracker app built with React Native (Expo) and Node.js. Track income & expenses in real time!
- 🔐 User Authentication: Signup and login using Clerk authentication
- 📧 Email Verification: Secure 6-digit verification code before accessing the app
- 📱 5 Screens: Signup, Login, Verify Email, Home, and Create Transaction
- 💰 Expense Tracker: Add income or expenses and manage financial entries
- ⚡ Live Balance Updates: Current balance calculated dynamically
- 🗑️ Delete Transactions: Remove old entries with a single tap
- 🔄 Pull-to-Refresh: Classic refresh gesture implemented from scratch
- 👋 Logout: Easily switch accounts or sign out
- 🛡️ Rate Limiting: Redis-based protection for API endpoints
- 🚀 Backend: Express RESTful API connected to MongoDB
- Frontend: React Native, Expo
- Backend: Node.js with Express – RESTful API
- Database: MongoDB with Mongoose
- Caching & Rate Limiting: Redis
- Authentication: Clerk
- Node.js (v18 or higher)
- npm or yarn
- MongoDB database (e.g., MongoDB Atlas)
- Redis server (e.g., Upstash Redis)
-
Clone the repository
git clone https://github.com/soumadip-dev/ExpenseTracker-RN-PERN.git cd ExpenseTracker-RN-PERN -
Backend Setup
cd server npm installCreate a
.envfile in theserverdirectory with:PORT=8080 MONGO_URI=<your_mongodb_uri> UPSTASH_REDIS_REST_URL=<your_upstash_redis_rest_url> UPSTASH_REDIS_REST_TOKEN=<your_upstash_redis_rest_token>
-
Frontend Setup
cd ../mobile npm installCreate a
.envfile in themobiledirectory with:EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=<your_clerk_publishable_key>
-
Run the Application
- Backend (Terminal 1):
cd server npm run dev - Frontend (Terminal 2):
cd ../mobile npm start
- Backend (Terminal 1):