REST API for expense tracking and budgeting.
Find a file
2026-02-13 11:47:12 -06:00
bruno/Common Cents removed sub-categories 2026-02-13 11:47:12 -06:00
src removed sub-categories 2026-02-13 11:47:12 -06:00
test added initial swagger docs 2026-02-13 11:03:31 -06:00
.gitignore Rework Expenses resource (#3) 2026-02-09 20:26:34 +00:00
eslint.config.mjs Add TypeORM DB and Resources (#2) 2026-02-09 00:10:26 +00:00
nest-cli.json initial brand new nest project 2025-12-10 10:38:13 -06:00
package-lock.json added initial swagger docs 2026-02-13 11:03:31 -06:00
package.json added initial swagger docs 2026-02-13 11:03:31 -06:00
README.md added initial swagger docs 2026-02-13 11:03:31 -06:00
tsconfig.build.json initial brand new nest project 2025-12-10 10:38:13 -06:00
tsconfig.json initial brand new nest project 2025-12-10 10:38:13 -06:00

Common Cents API

REST API for expense tracking and budgeting.

Project setup

Note: use no less than a currently supported LTS version of Node.

Install dependencies:

npm install

Run Locally

Start the API:

npm run start:dev

To verify the API is running access the interactive documentation.

Default port (3000) can be changed by setting the PORT= environment variable.

Default prefix (common-cents) can be changed by setting the PREFIX= environment variable.

Database

Supported configurations:

  • SQLite (default)
  • Local Postgres
  • External Postgres (recommended)

For simplicity, SQLite is used in the default/unconfigured state.

To use Postgres set the DB_TYPE=postgres environment variable. Postgres defaults will look for a local instance, which can be satisfied by running the following docker container:

docker run --name common-cents-db -e POSTGRES_USER=common-cents -e POSTGRES_PASSWORD=CommonCents_123! -p 5432:5432 -d postgres

For external Postgres, configure additional environment variables. To simplify this, use an env file placed in the root directory (common-cents-api/.env):

# .env

# API Config
PORT=3000
PREFIX=common-cents
DB_TYPE=sqlite # 'sqlite' or 'postgres'
DB_SYNC=true # Sync should be false for production

# Postgres overrides
PG_HOST=localhost
PG_PORT=5432
PG_USER=common-cents
PG_PASS=CommonCents_123!

Bruno

The included bruno folder contains a collection of calls to make it more convenient to interact with the API. Local calls assume the default NestJS port (3000) is being used.

What's Bruno?

Bruno is alternative to Postman, unlike Postman it's fully open source, requires no subscription or account and collections are easily version controlled.

Resources

Check out a few resources that may come in handy when working with NestJS:

  • Visit the NestJS Documentation to learn more about the framework.
  • For questions and support, please visit our Discord channel.
  • To dive deeper and get more hands-on experience, check out our official video courses.
  • Deploy your application to AWS with the help of NestJS Mau in just a few clicks.
  • Visualize your application graph and interact with the NestJS application in real-time using NestJS Devtools.
  • Need help with your project (part-time to full-time)? Check out our official enterprise support.
  • To stay in the loop and get updates, follow us on X and LinkedIn.
  • Looking for a job, or have a job to offer? Check out our official Jobs board.