Skip to content

Flexible personal finance tracking app

License

Notifications You must be signed in to change notification settings

caganseyrek/WalletTuner

Repository files navigation

WalletTuner

GitHub License GitHub repo size GitHub code size in bytes

Overview

Wallet Tuner is a full-stack personal finance tracking app built with Vite, React, and TypeScript for frontend, and Express and TypeScript for the backend. It uses MongoDB with Mongoose for database operations.

Prerequisites

Before running the application, ensure you have the following installed:

  • Node.js (v20.14 or higher)
  • pnpm (v9.15.0 or higher)
  • Docker and Docker Compose (Optional)

Also if you want to use the provided scripts, ensure your system supports running Bash scripts (e.g., Linux, macOS, or Windows Subsystem for Linux).

Getting Started

1. Clone the repository

git clone https://github.com/caganseyrek/WalletTuner.git
cd path/to/WalletTuner

2. Run the setup script

cd scripts/ # from the project root
./setup_project.sh

First, the script will download the required packages for frontend, backend, and the root folder, so you don't need to run pnpm install seperately.

Then, the script will check for .env files and rename the .env.sample files to .env.

Ensure you added valid configurations to both frontend and backend's .env files.

Backend's .env file only needs strings of random characters for secrets. You can generate these secrets running the generate_secrets script.

cd server/scripts
./generate_secrets.sh

3. Run the Application

After setting everything up, you can start the project with the run script.

cd scripts/ # from the project root
./run_app.sh (dev | build | preview)

This will:

  • Run the frontend at http://localhost:5173.
  • Run the backend at http://localhost:3000.

Docker Usage

Build and Run with Docker Compose

You can build and start the entire stack using Docker Compose:

docker-compose up --build

Individual Dockerfiles

If you want to build and run the services seperately:

Frontend

cd client/ # from the project root
docker build -t wtclient .
docker run -p 5173:5173 wtclient

Backend

cd server/ # from the project root
docker build -t wtserver .
docker run -p 5173:5173 wtserver

Bug Reports and Feature Requests

The project uses GitHub templates to streamline reporting bugs and requesting new features. To contribute:

  • Bug Reports: Open a new issue and select "Bug Report" template. Provide as much detail as possible to help us reproduce the issue.
  • Feature Request: Open a new issue and select "Feature Request" template. Describe the new feature and its intended purpose clearly.

Documentation

For detailed documentation, please see the project documentation.

License

This project is open-source and licensed under MIT License.