/budgetty

A simple budget tracker app built using Next.js and Nx as a monorepo management tool

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Budgetty

A simple budget tracker with lots of useful featuress.

made-by-acm


Submitting a Pull Request

  • Fork the repository by clicking the fork button on top right corner of the page
  • Clone the target repository. To clone, click on the clone button and copy the https address. Then run
git clone [HTTPS-ADDRESS]
  • Go to the cloned directory by running
cd [NAME-OF-REPO]
  • Create a new branch. Use
 git checkout -b [YOUR-BRANCH-NAME]
  • Make your changes to the code. Add changes to your branch by using
git add .
  • Commit the chanes by executing
git commit -m "your msg"
  • Push to remote. To do this, run
git push origin [YOUR-BRANCH-NAME]
  • Create a pull request. Go to the target repository and click on the "Compare & pull request" button. Make sure your PR description mentions which issues you're solving.
  • Wait for your request to be accepted.

Guidelines for Pull Request

  • Avoid pull requests that :
    • are automated or scripted
    • that are plagarized from someone else's branch
  • Do not spam
  • Project maintainer's decision on validity of PR is final.

For additional guidelines, refer to participation rules


Overview

Budgetty is a very simple, barebones yet feature rich app for tracking your daily spends. It can keep track of expenses as well as income, all organised in a very nicely styled way.

Usage

To run this app, you will need the following environment variables defined in a .env file at the root of the application. Copy the given .env.example into another file called .env, and fill in the values as follows

  1. DATABASE_URL: This is the Postgres connection string to your Postgres database that the application will use. This database can either be running somewhere on the cloud, or on your own local system using something like Docker, or just plain Postgres on your system.

  2. The GitHub credentials: For this, you will have to go to GitHub > Settings > Developer Settings > OAuth Apps, and click on "New OAuth App". This will prompt you enter the following details.

OAuth App Details

Once you click on "Register Application", copy the given Client ID and paste it into the .env file. Then, generate a new client secret, and copy the value and paste it into the .env file and voila, you're done :)

Running the App

To run the App, you will first have to clone the repo and install all the dependencies by running -

git clone [project url]
cd budgetty
npm install

We are using Nx as a monorepo tool along with Next.js and Nest.js for the frontend and backend respectively. To run the Next.js frontend, run -

nx serve website

And to run the Nest backend, run

nx serve backend

Generating new Controllers/Components

To generate new components for the frontend, run -

nx generate @nrwl/next:component [name of the component]

A new component will be generated with the given name in the components folder in the frontend.

Similarly, to generate new controller for the backend, run -

cd apps/backend # change to the backend folder
nx generate @nrwl/nest:controller [name of the controller]

A new folder will be created with the given name. Inside of it, you will find a file name-of-the-controller.contoller.ts which houses the controller logic.

Contributing

Refer to CONTRIBUTING.md for more details.

Authors

Authors: Anand Rajaram Contributors: