Skip to content

xlansoftware/ledgereleven

Repository files navigation

Ledger Eleven

License: MIT

LedgerEleven is a simple, mobile-first personal expense tracker designed for quick and easy entry on the go. It helps you visualize spending trends, import/export data for analysis, and leverages AI for a smarter experience.

Key Features

  • Mobile-First Design: Optimized for a seamless experience on your smartphone.
  • AI-Powered Insights: Get a smarter understanding of your spending habits.
  • Data Portability: Easily import and export your data.
  • Self-Hostable: Run it on your own infrastructure using Docker.
  • Secure: Your data is your own.

Screenshots

Add Transaction Transaction History Spending Insights

Live Application

The application is publicly available at: https://ledgereleven.com/

Technology Stack

  • Backend: C#, .NET 9, ASP.NET Core
  • Frontend: React, TypeScript, Vite
  • Database: SQLite
  • Testing: Playwright for end-to-end tests, xUnit for unit tests
  • Containerization: Docker

Development

To get a local copy up and running, follow these simple steps.

Running the Application Locally

(Requires: .NET 9.0 SDK and node.js installed.)

  1. Start the backend:

    cd ./src/ledger11.web
    dotnet run
  2. Start the frontend (in a new terminal):

    cd ./src/ledger11.client
    npm run dev

The application will be available at http://localhost:5173.

Alternatively, to run the application in a production-like environment, you can build the React application and have the .NET backend serve the static files. The React app's static assets are copied into the wwwroot/app folder of the .NET backend app. This wwwroot/app folder is included in the .gitignore file.

To build the React app and copy it into the ledger11.web app, run the following command in the ledger11.client folder:

npm run republish

The ledger11.web folder contains a restart.sh script that automates this process by stopping the backend, republishing the client, and restarting the backend.

Running in a Container

(Requires: Docker or Docker for Desktop installed.)

cd ./.devops/build
docker-compose up --build

The application will be available at http://localhost:8080.

Running Tests

Locally

Backend Tests:

cd src
dotnet test

Frontend Tests:

First, start the backend. Then, in a new terminal:

cd ./src/ledger11.webtests
npx playwright test

In a Container

Backend Tests:

cd ./.devops/test/backend
docker-compose run --build --rm app-test

Frontend Tests:

cd ./.devops/test/web
docker-compose run --build --rm test

Documentation

For more detailed instructions, troubleshooting, and a full list of useful commands, please refer to the following documents:

  • Getting Started: Detailed setup and development instructions.
  • About: More about the app, architecture, technology and design choices.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please read our Contributing Guide for details on our code of conduct, and the process for submitting pull requests to us.

About

LedgerEleven is a simple, mobile-first personal expense tracker designed for quick and easy entry on the go. It helps you visualize spending trends, import/export data for analysis, and leverages AI for a smarter experience.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors