A simple full-stack budgeting app with a Node.js/Express backend and a React frontend.
- Track budgets and expenses by category
- REST API (Express) with MongoDB
- Modern React frontend (Vite or CRA)
- Ready for CI/CD and cloud hosting
- Backend: Node.js v18, Express, Mongoose, Serverless Framework
- Frontend: React (Vite/CRA)
- Database: MongoDB (Atlas or self-hosted)
BudgetWise/
├─ backend/ # Node.js + Express API
│ ├─ src/ # controllers, models, routes, middleware
│ ├─ package.json
│ └─ .env # server secrets (create locally)
└─ frontend/ # React app (Vite/CRA)
├─ src/
├─ package.json
└─ .env # client env (create locally)
- Node.js v18 and npm (We recommend using nvm)
- Git
- MongoDB connection string (e.g., MongoDB Atlas)
git clone https://github.com/vdnnguyen94/BudgetWise.git
cd BudgetWisecd backend
nvm install 18
nvm use 18
npm installCreate a .env file in backend/ with:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_jwt_key
PORT=5000Start the local serverless environment:
npx serverless offline➡️ Backend runs at http://localhost:5000
cd frontend
npm installCreate a .env file in frontend/ with:
REACT_APP_API_URL=http://localhost:5000Start the frontend development server:
npm start➡️ Frontend runs at http://localhost:3000
Do not modify these unless you are familiar with the serverless architecture:
- serverless.yml
- handler.js
- db.js
- .github/workflows/deploy.yml
When working with app.js, only add new API routes. Avoid changing existing middleware/config.
https://budgetwise-mu.vercel.app/
- Check your status
git status- Fetch remote updates
git fetch- Switch to the main branch
git switch main- Update your local main
git pull --rebase origin main- Create a new feature branch
git switch -c feat/your-feature- Stage changes
git add -A- Commit changes
git commit -m "feat: description"- Push branch to remote
git push -u origin feat/your-featureredeploy