Get the Expense Management System running in 5 minutes!
- Node.js 18+ installed
- Supabase account (free tier works)
- Terminal/Command Line
- Log in to https://supabase.com
- Go to your project or create a new one
- Click on "SQL Editor" in the left sidebar
- Copy the contents of
Backend/src/config/database.sql - Paste into the SQL Editor
- Click "Run" to execute
Your database is now ready!
# Navigate to Backend directory
cd Backend
# Install dependencies
npm install
# The .env file is already configured
# If you need to update Supabase credentials, edit Backend/.env
# Start the backend server
npm run devYou should see: Server is running on port 5000
Open a new terminal window:
# Navigate to Frontend directory
cd Frontend
# Install dependencies
npm install
# The .env.local file is already configured
# Start the frontend dev server
npm run devYou should see: Local: http://localhost:5173/
- Open your browser to http://localhost:5173
- Click "Sign up" to create your account
- Fill in your details and select your country
- Your company will be automatically created!
-
Create Users
- Go to "User Management"
- Add employees and managers
- Assign roles and set up manager relationships
-
Configure Approval Rules
- Go to "Approval Rules"
- Create percentage-based rules (e.g., 60% approval)
- Or create specific approver rules (e.g., CFO auto-approves)
-
View Analytics
- Check the dashboard for expense insights
- Monitor approval workflows
- Submit Expenses
- Click "Submit Expense"
- Fill in details or scan a receipt
- Track status in real-time
- Review Expenses
- Go to "Approval Queue"
- Approve or reject pending expenses
- Add comments for employees
- Submit an expense in a different currency (e.g., EUR)
- See automatic conversion to your company's currency
- Both amounts are displayed
- As Admin, create a Manager user
- As Admin, create an Employee and assign the Manager
- Log in as Employee and submit an expense
- Log in as Manager and approve it
- See the expense status update in real-time
- Go to "Submit Expense"
- Click "Scan Receipt"
- Upload a receipt image
- See automatically extracted data
- Review and submit
Error: Missing Supabase environment variables
- Check
Backend/.envhas valid SUPABASE_URL and SUPABASE_ANON_KEY - Get these from Supabase dashboard β Settings β API
Port 5000 already in use
- Change PORT in
Backend/.envto 5001 or another port - Update VITE_API_URL in
Frontend/.env.localto match
Network error
- Ensure backend is running on port 5000
- Check
Frontend/.env.localhas VITE_API_URL=http://localhost:5000/api
Build errors
- Delete
node_modulesand runnpm installagain - Clear browser cache
Table doesn't exist
- Re-run the SQL migration from
Backend/src/config/database.sql
Permission denied
- Ensure RLS policies were created in the migration
- Check Supabase Auth is enabled
Test the backend directly:
# Health check
curl http://localhost:5000/health
# Should return:
# {"status":"ok","message":"Expense Management API is running"}PORT=5000
SUPABASE_URL=your_url_here
SUPABASE_ANON_KEY=your_key_here
VITE_API_URL=http://localhost:5000/api
VITE_SUPABASE_URL=your_url_here
VITE_SUPABASE_SUPABASE_ANON_KEY=your_key_here
cd Backend
npm startcd Frontend
npm run build
# Deploy the dist/ folder to your hosting provider- Multi-currency expense submission
- OCR receipt scanning
- Multi-level approval workflows
- Conditional approval rules
- Real-time analytics
- Role-based dashboards
- User management
- Expense history tracking
- Check the main README.md for detailed documentation
- Review API endpoints in Backend/README.md
- Open an issue on GitHub
Happy expense tracking!