Expense Tracker
A full-stack expense tracker with React + Vite on the frontend and Node.js + Express + Prisma + PostgreSQL on the backend.
- Frontend: React, Vite, Tailwind CSS
- Backend: Node.js, Express
- Database: PostgreSQL (Neon), Prisma ORM
- Auth: JWT, bcrypt
- Clone the repository:
git clone https://github.com/your-username/expense-tracker.git
cd expense-tracker- Configure backend environment:
cd server
cp .env.example .envUpdate values in server/.env.
- Install backend dependencies and run migrations:
npm install
npx prisma migrate dev- Start backend:
npm run dev- Configure frontend environment:
cd ../client
cp .env.example .env- Install frontend dependencies and start frontend:
npm install
npm run devThis repository includes a Render Blueprint file at render.yaml.
In server/package.json, deployment uses:
postinstall: generates Prisma clientprisma:migrate:deploy: applies pending migrationsstart:render: runs migrations, then starts Express
- Push this repo to GitHub.
- In Render, choose New +, then Blueprint.
- Select your repository so Render reads
render.yaml. - Render creates one web service:
expense-tracker-app. - Set environment variables in Render for that service:
DATABASE_URL(Neon connection string)JWT_SECRETALLOWED_ORIGINS(optional comma-separated list)
- Trigger deploy.
- Verify API health at:
https://<your-service>.onrender.com/api/health
- Open your service root URL and test signup/login and transactions.
- Use the Neon pooled connection string for
DATABASE_URL. - SSL is handled by Neon connection URL parameters.
- Prisma migrations in production are applied with
prisma migrate deploy.