Skip to content

An open source expense tracker web app to help you save up and spend thoughtfully.

Notifications You must be signed in to change notification settings

k4u5h4L/Ecospense

Repository files navigation


Ecospense logo
Ecospense

An open source expense tracker web app to help you save up and spend thoughtfully.

built with love js Badge k4u5h4L GitHub badge machine Badge not bug but feature spaghetti Badge

Getting StartedKey FeaturesTools UsedDevelopment SetupMisc

Getting Started

You can head over to ecospense.kaush.me and start using the site! You'll need to create an account before you can do anything though.

If you want to self host, please head on to Development Setup to see how to set up on your local machine.

Key Features

  • Real time management of funds.
  • Support for multiple accounts.
  • You can now add goals and track how much you have saved for it.
  • Analytics/future forecasting your spending habits.
  • External news articles right in the app!
  • Passwordless logins! Just enter your email and use the OTP!
  • Cross platform usability, both on Android and iOS using PWA technology. (UI is currently not really optimised for desktop users).
  • Support for 25+ most traded currencies.
  • Chat with an AI helper regarding spending and other financial advice (probably will use an external AI modal like ChatGPT here).
  • Quick convertion of currencies with real time exchange rates.
  • Logging of history of transitions and activities with scope to reverse transactions.
  • Support for tracking monthly bills and instant payment responses.
  • Easily self hostable with just a vercel account, MongoDB access, news API keys and SMTP keys.

To find more features or want to see the future roadmap, head on to the issues section.

Tools Used

  • Next.js as a full stack React framework.
  • Typescript as the type safe layer over Javascript.
  • Next-auth for authentication and passwordless logins.
  • GraphQL as the API language.
  • Apollo client and Apollo server graphql implementations on the client and server respectively.
  • Nexus as the GraphQL schema management.
  • MongoDB as the primary database.
  • Prisma as the database ODM.
  • Apexcharts to visualise graphs and charts.
  • Framer motion to handle page animations.
  • Gmail SMTP to send emails.
  • Brain.js (tentatively) as the ML lib to forecast spending habits.
  • Dicebear to generate fun profile pictures.

Development Setup

# Clone this repository
$ git clone https://github.com/k4u5h4L/Ecospense.git ecospense

# Navigate into the repository
$ cd ecospense

# Install dependencies
$ yarn install

# Add required API keys and other secrets in a `.env` file. You can check the `.env.sample` file to view the different API keys which are required.

# Run the development server
$ yarn dev

# To create a production build and start, run
$ yarn run build && yarn start

A server would have start on localhost:3000.

Note If you're using npm, see corresponding commands for npm as opposed to yarn.

Misc

Ecospense is a free software, and is developed by me as a side project. I had created this site to track my finances using an app i myself created, and I decided to share if someone else also finds it useful. I am not responsible for any issues which may arise when the site is hosted. I will not sell any user data if you intend to use the current version at ecospense.kaush.me. However, it is advised not to enter any confidential information on the site, as there is a reason I am not connecting it to any banking solution as this is purely a personal tracker with no correspondence to correctness of your account details.