goCa$h is a cross-platform desktop application built to simulate banking operations, with a focus on joint accounts. The project implements real-world concurrency issues and Operating System concepts including IPC (Inter-Process Communication), thread synchronization, memory management, and process isolation.
This ReadMe provides complete setup instructions for running the application on a fresh machine.
- Frontend: React + Tailwind CSS
- Backend: Rust (Tauri framework)
- Database: MySQL
- Communication: Tauri IPC, WebSockets
- Target Platforms: Windows & Linux
-
Node.js & npm
Download from https://nodejs.org
(npm comes bundled with Node.js) -
pnpm (Package Manager)
Install via npm:
npm install -g pnpm -
Rust & Cargo
Install via rustup:
https://rustup.rs -
Tauri CLI
Install using Cargo:
cargo install tauri-cli
-
OpenSSL (Required by Rust)
Download and install from:
https://slproweb.com/products/Win32OpenSSL.html -
Set Environment Variables in Command Prompt (Admin):
set OPENSSL_DIR=C:\Program Files\OpenSSL-Win64 set OPENSSL_LIB_DIR=%OPENSSL_DIR%\lib set OPENSSL_INCLUDE_DIR=%OPENSSL_DIR%\include
-
Install Microsoft WebView2 Runtime:
https://developer.microsoft.com/en-us/microsoft-edge/webview2/
-
Install OpenSSL using Homebrew:
brew install openssl -
Add the following to your shell config (.zshrc / .bash_profile):
export OPENSSL_DIR=$(brew --prefix openssl) export OPENSSL_LIB_DIR=$OPENSSL_DIR/lib export OPENSSL_INCLUDE_DIR=$OPENSSL_DIR/include
-
Install Xcode Command Line Tools (if not installed):
xcode-select --install
git clone https://github.com/ShravyaKudlu/gocash.git
cd gocash-
Install all dependencies:
pnpm install -
Start the app in development mode:
pnpm tauri dev
✅ A native window should launch after a few seconds.
- Ensure MySQL service is running and reachable.
- Use an Ably account for real-time messaging (optional for demo).
- If facing SSL issues, verify OpenSSL installation and environment variables.
- Always run terminal with elevated permissions (Admin on Windows).
-
IPC delay or unresponsive UI:
Ensure backend handlers are correctly defined intauri.conf.json. -
WebSocket/SSL errors:
Verify.envis correctly configured with valid credentials. -
App doesn’t launch:
Confirm that WebView2 (Windows) or Xcode tools (macOS) are installed.
pnpm tauri buildEnvironment variables used for DB and Ably access may expire after the semester. You can continue using the app by:
- Setting up a new MySQL instance (e.g., on PlanetScale or Aiven)
- Creating an Ably app for WebSockets
- Updating the
.envfile with your new credentials
✅ This completes the setup instructions for goCa$h.