A full-stack expense tracking application with a Quasar frontend and Node.js backend.
This monorepo contains a complete expense tracking application with:
- Frontend: Quasar/Vue.js application for managing expenses with charts and data visualization
- Backend: Node.js API built with Express and MongoDB
expense-tracker/
├── frontend/ # Quasar application
├── backend/ # Node.js API
├── Dockerfile # Docker configuration for backend
├── railway.json # Railway deployment configuration
├── vercel.json # Vercel deployment configuration
└── README.md # This file
- User authentication and account management
- Record sheet tracking for organizing expenses
- Transaction management (income and expenses)
- Category-based expense tracking
- Data visualization with charts
- Responsive design for desktop and mobile
- PWA support
- Quasar Framework (Vue.js)
- Pinia for state management
- Axios for API requests
- Highcharts for data visualization
- PWA capabilities
- Node.js with Express
- MongoDB for database
- JWT for authentication
- Resend for email functionality
- Node.js (v14+)
- MongoDB (local or Atlas)
- Git
git clone <repository-url>
cd expense-trackercd frontend
npm install
npm run devcd backend
npm installCreate a .env file in the backend directory with:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/expense-tracker
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRATION=7d
FRONTEND_URL=http://localhost:9000
RESEND_API_KEY=your_resend_api_key_here
EMAIL_FROM=[email protected]Start the backend:
npm run dev- Run
npm run devin the frontend directory - Access the application at http://localhost:9000
- Run
npm run devin the backend directory - API will be available at http://localhost:3000
cd frontend
npm run buildcd backend
npm startThis project is configured for deployment using:
- Push to your GitHub repository
- Connect to Vercel
- The
vercel.jsonfile already contains the necessary configuration
- Push to your GitHub repository
- Connect to Railway
- The
railway.jsonfile already contains the necessary configuration
docker build -t expense-tracker-backend .
docker run -p 3000:3000 expense-tracker-backendSet these in your Vercel project settings or a .env file:
VITE_API_URL: URL to your backend API
Set these in your Railway project settings or a .env file:
PORT: Server port (default: 3000)MONGODB_URI: MongoDB connection stringJWT_SECRET: Secret key for JWT tokensJWT_EXPIRATION: Token expiration timeFRONTEND_URL: URL to frontend applicationRESEND_API_KEY: API key for email serviceEMAIL_FROM: Sender email address