/cash-sync

CashSync is an advanced expense tracker that manages your finances across multiple clients with seamless synchronization and real-time updates.

Primary LanguageTypeScriptMIT LicenseMIT

CashSync

An expense tracker app. (Clone of Cashbook)

About The Project

CashSync is a comprehensive expense tracker app designed to help you manage your expenses across multiple clients. Inspired by Cashbook, CashSync offers robust features and seamless synchronization, ensuring your financial records are always up-to-date and accessible.

Features

  • User Authentication: Secure and easy authentication with Clerk
  • Expense Books: Create and manage multiple expense books.
  • Entries Management: Add and organize entries within each expense book
  • Cross-Platform Sync: Keep your expenses synchronized across multiple devices.

Technology Stack

  • Backend: Golang
  • Database: Google Firestore
  • Client: React Native, Expo (for Android App)

Getting Started

  • Requirements

    • Go
    • NodeJs >= v20.x
    • Clerk Private and public keys
    • Google cloud service account keys
  • Installation

    • Clone repository

      git clone https://github.com/nullsploit01/cash-sync.git
      cd cash-sync
    • Server setup

      • cd server
      • Update following parameters of conf/config.yaml
      firestoreServiceAccountKeysLocation: 'YOUR_GOOGLE_SERVICE_ACCOUNT_CREDENTIALS'
      clerkApiKey: 'YOUR_CLERK_PRIVATE_KEY'
      
      • Run the following command to start the application
      go run .
      • For hot reloading, update .air.toml as required and running the following command
      air
    • App setup

      • cd app
      • Install packages
      npm install
      • Add an .env.local with the following parameters
      EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=YOUR_EXPO_PUBLIC_KEY
      EXPO_PUBLIC_API_URL=YOUR_LOCAL_SERVER_URL
      • Start the application
      npm start