License: GPL Issues



Logo

Personal Ledger | Backend

Backend server for the Personal Ledger application. This repository contains a Rust gRPC daemon that interfaces with the database and serves data to clients.
Explore the docs »

· Personal Ledger (Parent Repo) · Report Bug · Request Feature ·

Quickstart

  • Build: cargo build
  • Run: cargo run
  • Tests: cargo test

If you use the provided devcontainer, rebuild it first (Command Palette → "Dev Containers: Rebuild Container") and then open a terminal in the container to run the commands above.

Development

  • Language: Rust
  • Primary crates & tooling: tonic (gRPC), sqlx (Postgres), tracing, serde, thiserror.
  • Devcontainer: .devcontainer/devcontainer.json includes tools such as mdbook, cargo-make, cargo-watch, cargo-audit, clippy, rustfmt, and protoc.
  • Copilot instructions can be found in .github/copilot-instructions.md

Documentation

Project docs live in the docs/ folder. They can be browsed at https://ianteda.github.io/personal-ledger-backend/ or local running the command:

  • Serve mdBook documentation (uses port 8001 in the devcontainer):

    mdbook serve --port 8001
    

Protobuf / gRPC

Protobuf files are stored under protos/ (submodule). The build script build.rs compiles protos into Rust types — ensure protoc is available (the devcontainer installs protobuf-compiler).

Concirm gRPC reflections service with grpcurl -plaintext localhost:50051 list

Code Quality

  • Formatting: cargo fmt / rustfmt
  • Linting: cargo clippy
  • Coverage: cargo tarpaulin (available in the devcontainer)

Running the MCP / awesome-copilot server (optional)

If you want to run the awesome-copilot MCP image from the awesome-copilot project locally (for experimenting with Copilot customizations), you can run it with Docker inside the devcontainer:

docker run -i --rm ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest

Do not commit any credential or secret files. If the MCP server requires configuration, prefer using a workspace-local .vscode/ configuration file and local secrets (user settings or environment variables).

Contributing

Please open issues or pull requests for bugs and feature requests. Follow the repository coding standards: add tests, run cargo fmt, and run cargo clippy before submitting.

License

See the repository LICENSE file for licensing information.