The Expense Tracker is an internal Angular application developed as part of the NTT DATA Tech Trek initiative. This tool streamlines the expense reporting process for NTT DATA employees, allowing for efficient submission, tracking, and management of business expenses.
- Quick Expense Entry: Submit expenses on-the-go with an intuitive interface
- Receipt Management: Upload, store, and organize digital receipts (coming in V3)
- Expense Categories: Categorize expenses for better financial visibility
- Approval Workflow: Streamlined approval process with notifications (coming in V3)
- Reporting: Generate detailed expense reports across various time periods (coming in V2)
- Export Options: Download reports in multiple formats (PDF, CSV, Excel) (coming in V2)
- Node.js (v20.0 or higher)
- Angular CLI (v19.0 or higher)
- npm (v10.0 or higher)
- Firebase account
This project uses Firebase services and requires proper configuration via environment variables.
- You need a Firebase account. If you don't have one, sign up at firebase.google.com.
- Create a new Firebase project or use an existing one.
- Configure the following services in your Firebase project:
- Firebase Authentication
- Cloud Firestore
- Realtime Database
- Firebase Storage
- Google Analytics (optional, but required for the measurement ID)
Note
All these services must be properly configured before the application can function correctly.
- Go to the Firebase Console
- Select your project
- Click on the gear icon (βοΈ) next to "Project Overview" to access Project settings
- Scroll down to "Your apps" section and select your web app (or create one by clicking the web icon </> if you haven't added one yet)
- Under the "SDK setup and configuration" section, you'll find your Firebase configuration object which contains all the required keys
- For Google Vision API and Gemini API keys, you'll need to enable these services in the Google Cloud Console associated with your Firebase project
- Firebase Authentication: Enable the authentication methods you plan to use (Email/Password, Google, etc.)
- Cloud Firestore: Create a new database and set up appropriate security rules
- Realtime Database: Create a database and configure security rules
- Firebase Storage: Set up storage and configure security rules
Tip
Consider using Firebase's development and production environments to separate your testing from live data.
git clone https://github.com/andricolae/expense-tracker.git
cd expense-tracker
Install dependencies:
Create a .env file in the root directory of the project with the following structure:
API_KEY="your-firebase-api-key"
AUTH_DOM="your-firebase-auth-domain"
PROJ_ID="your-firebase-project-id"
STORAGE="your-firebase-storage-bucket"
MESS_SEND_ID="your-firebase-messaging-sender-id"
APP_ID="your-firebase-app-id"
MEASURE_ID="your-firebase-measurement-id"
GOGL_VISION="your-google-vision-api-key"
GMNI="your-gemini-api-key"
DB_URL="your-firebase-database-url"
Replace the placeholder values with your project credentials. You can find these values in your Firebase/Google Vision/Google Gemini project settings.
The "start" option in package.json will generate the environment variable script based on your .env file
"start": "node -r dotenv/config mynode.js && ng serve",
Caution
Never commit your .env or environment.ts file to version control. These files contain sensitive API keys and credentials that should remain private.
ng serve
Note
Open your browser and navigate to http://localhost:4200
- Core modules for authentication, data services, and HTTP interceptors
- Feature modules for expenses, reports, approvals, and user settings
- Shared modules for common components and directives
- State management using NgRx for predictable data flow
Frontend: Angular 19 Authentication: Firebase Auth CI/CD: Github and Vercel
The Expense Tracker was developed by the following Tech Trek Angular team at NTT DATA
Name | Role |
---|---|
Anna Marita Thuri | Visual Experience Architect |
Antonia Gabriela Albu | Visual Experience Architect |
Francesco Maxim | Receipt Whisperer |
Robert Gengiu | Access Maestro |
Tudor Ovidiu Atodiresei | Authentication Guardian |
Andrei Nicolae Calutiu | Expense Engineer |
As this is an internal Tech Trek project, contributions are welcome from all NTT DATA employees.
Please follow these steps:
- Check the issue tracker for open tasks
- Request to be assigned to an issue
- Create a feature branch from develop
- Submit a merge request with your changes
- Ensure CI/CD pipeline passes
- Request a code review from the team
Important
Always create a new branch from develop for your features, not from main.
This project is proprietary and confidential. The code and its assets are the exclusive property of NTT DATA. Unauthorized use, reproduction, or distribution is prohibited. Β© 2025 NTT DATA | All Rights Reserved