Skip to content

Expense Management System built for Odoo x Amalthea Hackathon 2025 — Automating expense tracking, approvals, and reporting with smart dashboards insights.

Notifications You must be signed in to change notification settings

MohitSutharOfficial/odoo-expense-management

Repository files navigation

💼 Odoo Expense Management System

Smart Expense Tracking Made Simple

Video Demo: https://drive.google.com/drive/folders/1PwK01Tt8u-4EIxLgFBRgpHZ6nnC1lOpT?usp=sharing

🎬 Demo & Screenshots

�️ Live Application

Frontend: https://odooexpense.onrender.com
Backend API: https://odootest-qx6x.onrender.com

Special thanks to:

  • Odoo - For the beautiful UI/UX design inspiration that drives our interface
  • Material-UI Team - For the comprehensive React component library
  • Supabase - For the powerful PostgreSQL database and authentication
  • Firebase - For seamless Google Sign-In integration
  • Cloudinary - For reliable cloud-based file storage
  • Tesseract.js - For the incredible OCR capabilities
  • Open Source Community - For the amazing tools, libraries, and inspiration

💡 Technologies & Services Used

Category Technologies
Frontend React 18, TypeScript, Material-UI v5, Zustand, React Router v6, Recharts
Backend Node.js, Express, TypeScript, JWT, Multer, Nodemailer
Database Supabase (PostgreSQL), Row Level Security
Authentication Supabase Auth, Firebase Auth (Google), JWT Tokens
File Storage Cloudinary (Images & Receipts)
OCR Tesseract.js (Local Processing)
Email Resend API
Deployment Render.com (Free Tier)
Version Control Git, GitHub
Design Figma, Odoo Design System
Material-UI
Supabase

A modern, full-stack expense management platform with Odoo-inspired design, built for seamless expense tracking, intelligent OCR receipt scanning, and automated approval workflows.

Live Demo · Documentation


🎯 Built For Odoo Hackathon 2025

This project showcases modern web development practices with an Odoo-inspired professional interface, combining powerful expense management features with beautiful, intuitive design.

🚀 Features

  • Multi-Role Authentication (Employee, Manager, Finance, Admin)
  • 📱 Odoo-Inspired UI - Professional, human-designed interface
  • 📸 OCR Receipt Scanning - Auto-extract expense details from receipts
  • Multi-Level Approval Workflow - Configurable approval chains
  • 📊 Real-Time Dashboard - Analytics, charts, and KPIs
  • 💰 Budget Tracking - Department-wise budget monitoring with alerts
  • 🔔 Smart Notifications - Real-time alerts and updates
  • 📱 Responsive Design - Works seamlessly on all devices

🛠️ Tech Stack

Backend

  • Node.js + Express.js + TypeScript
  • Supabase (PostgreSQL + Auth)
  • JWT Authentication
  • Cloudinary (File uploads)
  • Tesseract.js (OCR)
  • Resend (Email notifications)
  • Firebase Auth (Google Sign-In)

Frontend

  • React 18 + TypeScript
  • Material-UI (MUI)
  • Zustand (State management)
  • Recharts (Charts)
  • Axios (API client)
  • React Router v6

📦 Quick Start

Prerequisites

  • Node.js 18+
  • Supabase account (database & auth)
  • Firebase account (Google Sign-In)
  • Cloudinary account (file uploads)
  • Resend account (email notifications)

Installation

# 1. Install dependencies
cd backend
npm install

cd ../frontend
npm install

# 2. Setup environment variables
# See docs/ENVIRONMENT_VARIABLES.md for all required variables

cd backend
# Create .env with Supabase, JWT, Cloudinary, Resend keys

cd ../frontend
# Create .env with Supabase, Firebase, API URL

# 3. Start development servers
# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend
cd frontend
npm run dev

Visit:

📁 Project Structure

odoo/
├── backend/
│   ├── src/
│   │   ├── middleware/         # Authentication
│   │   ├── routes/             # API endpoints
│   │   │   ├── auth.routes.ts
│   │   │   ├── expense.routes.ts
│   │   │   ├── approval.routes.ts
│   │   │   ├── stats.routes.ts
│   │   │   └── ...
│   │   ├── services/           # Business logic
│   │   ├── types/              # TypeScript types
│   │   ├── utils/              # Helper functions
│   │   └── server.ts
│   ├── render.yaml             # Render deployment config
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   └── Layout.tsx      # Main layout with sidebar
│   │   ├── pages/
│   │   │   ├── Landing.tsx     # Landing page with auth
│   │   │   ├── Dashboard.tsx   # Analytics & KPIs
│   │   │   ├── Expenses.tsx    # Expense list
│   │   │   ├── NewExpense.tsx  # Create expense
│   │   │   ├── Approvals.tsx   # Pending approvals
│   │   │   └── ...
│   │   ├── services/
│   │   │   └── api.ts          # Axios client
│   │   ├── store/
│   │   │   └── index.ts        # Zustand stores
│   │   ├── types/
│   │   │   └── index.ts        # TypeScript types
│   │   ├── theme.ts            # MUI Odoo theme
│   │   ├── App.tsx
│   │   └── main.tsx
│   ├── render.yaml             # Render deployment config
│   └── package.json
├── docs/                       # 📚 Complete documentation
│   ├── README.md               # Documentation index
│   ├── FINAL_DEPLOYMENT_GUIDE.md
│   ├── ENVIRONMENT_VARIABLES.md
│   ├── QUICK_DEPLOY_COMMANDS.md
│   ├── READY_FOR_DEPLOYMENT.md
│   └── ...
└── README.md

📡 API Endpoints

Authentication

POST /api/auth/login          - User login
POST /api/auth/register       - User registration
GET  /api/auth/me             - Get current user

Expenses

GET    /api/expenses          - List expenses (with filters)
GET    /api/expenses/:id      - Get expense details
POST   /api/expenses          - Create expense (multipart/form-data)
PUT    /api/expenses/:id      - Update expense
DELETE /api/expenses/:id      - Delete expense

Approvals

GET  /api/approvals/pending           - Get pending approvals
POST /api/approvals/:id/decision      - Approve/reject

Dashboard & Stats

GET /api/stats/dashboard      - Dashboard analytics
GET /api/budgets              - Budget information
GET /api/categories           - Expense categories
GET /api/departments          - Departments list
GET /api/notifications        - User notifications

🚢 Deployment

✅ Production Ready!

This project is fully configured and ready for deployment on Render.com (free tier).

📖 Complete Deployment Guide: docs/FINAL_DEPLOYMENT_GUIDE.md

Quick Deploy Steps:

  1. Deploy Backend: Render Web Service (~10 min)
  2. Deploy Frontend: Render Static Site (~10 min)
  3. Configure URLs: Update environment variables
  4. Test: Verify all features working

🤝 Contributing

Contributions welcome! Please follow these steps:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

📄 License

MIT License - free to use for your hackathon!

�🙏 Acknowledgments

  • Odoo - UI/UX design inspiration
  • Material-UI - React component library
  • Supabase - Database and authentication
  • Firebase - Google Sign-In
  • Cloudinary - File storage
  • Open Source Community - Amazing tools and libraries

🤝 Contributions

  • Mohit Suthar - Lead developer, UI/UX design, frontend architecture, deployment
  • Ankit Sharma - Backend development, database schema, API design, authentication

Built with ❤️ using React, TypeScript, and Material-UI for Odoo Hackathon 2025


🏆 Project Status & Achievements

✨ Project Highlights

Aspect Status Description
🚀 Production LIVE Deployed on Render.com, fully operational
🎨 Design ✅ Complete Odoo-inspired professional UI/UX
🔐 Security ✅ Verified JWT, RLS, secure authentication
📱 Responsive ✅ Mobile-Ready Works flawlessly on all devices
🧪 Testing ✅ Tested Comprehensive manual testing completed
📖 Docs ✅ Complete Full deployment and API documentation
Performance ✅ Optimized Fast load times, efficient queries
🌐 APIs ✅ RESTful Well-structured, documented endpoints

📊 Technical Achievements

  • 56 Realistic Expenses seeded across 5 departments
  • Multi-Role Authentication with 4 permission levels
  • OCR Integration with Tesseract.js for receipt scanning
  • Real-Time Budget Tracking with alert thresholds
  • Email Notifications for approvals and updates
  • Google Sign-In with Firebase integration
  • Cloud Storage with Cloudinary for receipts
  • PostgreSQL with Row Level Security policies
  • TypeScript throughout for type safety
  • Responsive Charts with Recharts library

🎯 Hackathon Readiness

Criteria Status
Code Quality ✅ Clean, organized, well-commented
User Experience ✅ Intuitive, Odoo-inspired design
Features ✅ Complete expense management system
Innovation ✅ OCR scanning, smart approvals
Deployment ✅ Live on Render.com
Documentation ✅ Comprehensive guides
Presentation ✅ Demo-ready with sample data

📞 Contact & Support

Got Questions? We're Here to Help!

📧 Email: mohit.suthar@example.com | ankit.sharma@example.com
💬 GitHub Issues: Report a bug or request a feature
🌐 Live Demo: odooexpense.onrender.com
📚 Documentation: Complete Docs


⭐ If you find this project helpful, please give it a star!

Built for Odoo Hackathon 2025 | Status: ✅ PRODUCTION READY
Last Updated: October 4, 2025 | Version: 1.0.0

Making expense management delightful, one receipt at a time. 💼✨

About

Expense Management System built for Odoo x Amalthea Hackathon 2025 — Automating expense tracking, approvals, and reporting with smart dashboards insights.

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •