A premium, full-stack expense management application built with React 19, Vite 8, Tailwind CSS 4, and Node.js. This project is designed for high performance, security, and financial accuracy.
- Frontend: https://expense-tracker-nu-hazel.vercel.app
- Backend API: https://expense-tracker-backend-v5s1.onrender.com
- JWT Authentication: Secure signup and login workflows.
- Private Data Isolation: Each user manages their own independent expense data.
- Protected Routes: Frontend routing ensures only logged-in users access the dashboard.
- Bcrypt Hashing: Industry-standard password security.
- Glassmorphism UI: Stunning frosted glass effects with dynamic blurs.
- Animated Backgrounds: Smooth gradient mesh background for a premium feel.
- Responsive Design: Optimized for everything from mobile phones to ultra-wide monitors.
- Global Toast System: Real-time feedback for all user actions.
- PostgreSQL Persistence: Managed database on Render for reliable data storage.
- Redis Caching: Support for ultra-fast data retrieval via ioredis.
- Idempotency Control: UUID-based tracking prevents duplicate submissions.
- Rate Limiting: Built-in protection against API abuse and brute-force attacks.
- Integer Precision: All calculations are performed in "paise" to avoid JavaScript floating-point errors.
- Category Breakdown: Real-time summary charts and spending analysis.
- Advanced Filtering: Sort by date and filter by category (Food, Health, Transport, etc.).
- Framework: React 19 + Vite 8
- Styling: Tailwind CSS 4
- State Management: TanStack Query (React Query)
- Routing: React Router 7
- Icons: Lucide React
- Runtime: Node.js + Express
- Database: PostgreSQL (pg)
- Caching: Redis (ioredis)
- Security: Helmet, Express Rate Limit, JWT, Bcrypt
git clone https://github.com/sachin9919/Expense_Tracker.git
cd Expense_Trackercd backend
npm install
# Create a .env file with:
# DATABASE_URL=your_postgres_connection_string
# JWT_SECRET=your_secret
# REDIS_URL=your_redis_url (optional)
npm run devcd ../frontend
npm install
# Create a .env file with:
# VITE_API_URL=http://localhost:3000
npm run dev- Use the included
render.yamlBlueprint. - Connect your GitHub repo.
- Render will automatically provision a PostgreSQL database and a Web Service.
- Import the repository to Vercel.
- Set the root directory to
frontend. - Add the
VITE_API_URLenvironment variable.
This project is licensed under the MIT License.