TeamCash
January 24, 2016 ยท View on GitHub
Created by Elliot Davies and Chris Hutchinson during #mondohack III.
About
TeamCash is a smart spending tracker for small teams and businesses, built with Mondo.

Scenario #1
That's right, scenarios. You're a manager of a small team, and your team need company cards for work expenses. You give them cards, and they start spending your company's money. But wait! How do you know what they're spending? What if they're slipping in an expensive coffee every morning for themselves, or taking their mum out for dinner every Thursday evening (sweet, but not cool)?
You could go to your bank, ask for statements for all your team members and spend hours trawling through them all. You might even have a system for automatic tracking of their spending already, but damn, you probably have to boot up the old Windows machine in the corner of the office that runs IE6, just to access the interface that hasn't been updated since <marquee> tags were cool.
Wouldn't it be great if there was a modern, attractive, and integrated way of doing this? Well hot damn, TeamCash can do all of those things. Track your team, flag mysterious expenditures, generate digital and print reports and more!
Scenario #2
Your staff are busy people. They're out flying around the world, and tracking their spending across all their projects can be hard. Are those travel costs for Project A or Project B? If only you could attach calendar events to your transactions, and generate reports for all expenditure on a specific event. Oh wait, with TeamCash, you can!
Development
The app is made up two parts, a Node.js server and a ReactJS frontend. Both connect to a Firebase for access to real-time data from Mondo.
To run locally:
- Clone this repository
- Run
$ npm install - Copy
example.config.jsontoconfig.json. See Configuration for more. - Run
$ npm startto run the Node.js server using thedistversion of the ReactJS app - Run
$ npm run webpackto run the ReactJS app using Webpack Dev Server
To build an updated version of the ReactJS app into /dist run $ npm run dist.
Configuration
client_id: Mondo Client IDclient_secret: Mondo Client Secretserver: Local server address (e.g.localhostor0.0.0.0)port: Local port number for the Node.js server (the Webpack Dev Server will use 8000 by default)database: The URL to your Firebase databasestaging_auth_url: The Mondo staging auth URL, you probably won't need to change thisauth_url: The Mondo auth URL, you probably won't need to change thisstaging_api_url: The Mondo staging API URL, you probably won't need to change thisapi_url: The Mondo API URL, you probably won't need to change thisis_prod: Boolean to determine if your app should use the production or staging Mondo environment