The Official Expense Tracking & Reimbursement Portal for IPEC Consulting
IPEC Expense Manager is a comprehensive, progressive web application (PWA) designed to streamline financial operations for the International Process Excellence Council. It facilitates seamless expense submission for employees and provides robust approval workflows for administrators β all with offline capability and real-time sync.
- Dashboard β View total paid/pending claims at a glance
- Create Claim β Modal form with receipt upload (ImageKit/Firebase), multi-currency support, and expense categorization
- Claim History β Searchable list of all submitted claims with status badges
- Profile Management β Edit personal details and download personal data (GDPR-ready)
- Approval Workflow β Review pending claims, view receipts, and Approve/Reject with comments
- Analytics β Visual charts (Chart.js) for spending by category/month
- User Management β Add/Edit/Remove system users and assign roles
- Project Management β Create and manage billing codes/projects
- Audit Logs β Detailed timeline of all system actions for compliance
- PWA β Installable on Android, iOS, Windows, and macOS with full offline support
- Role-Based Access Control β Separate, secure portals for Employees and Administrators
- Real-Time Sync β Instant updates via Firebase Firestore
- AI Assistant β Built-in AI chatbot for policy queries and support
- Direct Chat β Integrated messaging system for internal communication
- PDF Reports β Generate and download expense reports as PDF
| Layer | Technology |
|---|---|
| Frontend | HTML5, Vanilla JavaScript (ES6+), Tailwind CSS |
| Backend | Firebase (Firestore, Auth, Storage, Cloud Functions) |
| Media Storage | ImageKit.io |
| Charts | Chart.js |
| PDF Export | html2pdf.js |
| Hosting | Netlify |
| PWA | Service Worker (Network-first + Cache-first strategies) |
- A modern browser (Chrome, Edge, Firefox, or Safari)
- A Firebase project with Firestore, Auth, and Storage enabled
- Node.js (only required for Cloud Functions in
/functions)
-
Clone the repository
git clone https://github.com/your-username/expense-tracker.git cd expense-tracker -
Deploy Cloud Functions (optional)
cd functions npm install firebase deploy --only functions -
Run locally
Serve the project using any static file server:
npx serve .Then open
http://localhost:3000in your browser. -
Deploy to Netlify
Push to your connected GitHub repo β Netlify will auto-deploy. The
_redirectsfile handles SPA routing automatically.
βββ assets/
β βββ images/ # All image assets
β βββ ipec.jpg # Brand logo (PWA icon, apple-touch-icon)
β βββ cropped-ipec-logo-32x32.png # Favicon
β βββ s1.png, s2.png, s3.png # PWA screenshots
β
βββ css/
β βββ common.css # Shared styles
β
βββ js/
β βββ theme.js # Dark/Light mode toggle
β βββ utils.js # Shared utility functions
β βββ admin-helper.js # Admin-specific calculations
β βββ ai-support.js # AI chatbot widget logic
β βββ firebase-config.js # Firebase initialization
β βββ spam-filter.js # Spam detection for messaging
β
βββ scripts/ # Build & maintenance scripts (Python)
β βββ make_common_css.py
β βββ update_admin_emp.py
β βββ update_index.py
β
βββ functions/ # Firebase Cloud Functions
β βββ index.js
β βββ package.json
β
βββ index.html # Landing page (public entry point)
βββ emp.html # Employee portal
βββ admin.html # Admin command center
βββ 404.html # Custom "Page Not Found"
βββ offline.html # Offline fallback page
β
βββ sw.js # Service worker (PWA)
βββ firebase-messaging-sw.js # FCM worker
βββ manifest.json # Web App Manifest
βββ firestore.rules # Firestore security rules
β
βββ .well-known/ # security.txt
βββ robots.txt, sitemap.xml # SEO
βββ _redirects # Netlify routing
βββ feed.xml, opensearch.xml # RSS & search
βββ browserconfig.xml # Windows tile config
βββ humans.txt # Team credits
βββ LICENSE # MIT License
- Firebase Rules β Firestore rules (
firestore.rules) ensure authenticated access only - Security Policy β Standardized
security.txtin.well-known/ - Input Validation β Spam filtering on messaging features
Contributions are welcome! To get started:
- Fork this repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the existing style and conventions.
This project is licensed under the MIT License β see the LICENSE file for details.
Made with β€οΈ by Mitanshu Bhasin for IPEC Consulting
Β© 2026 International Process Excellence Council. All Rights Reserved.
