Skip to content

A (mobile) app to track shared expenses and split bills easily

License

Notifications You must be signed in to change notification settings

pranaovs/Qashare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

250 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qashare

A (mobile) app to track shared expenses and split bills easily.

Stargazers Forks Discussions Issues Last Commit Badge AGPL-3.0 License

Report Bug View Docs

About The Project

Pronounced: Cash-Share

A full-stack application designed to help users track shared expenses and split bills easily. The app features a Flutter mobile client and a Go backend with PostgreSQL database.

Built Using

  • Flutter
  • Go
  • PostgreSQL

Getting Started

To set up the project locally, follow these instructions for both the client and server components.

Prerequisites

Server (Backend)

Container Build

  • Go >= 1.25.3 (test for lower)
  • PostgreSQL database

Client (Flutter App)

Flutter Build

  • Flutter SDK >= 3.9.2 (test for lower)
  • Dart SDK (included with Flutter)

Installation

  1. Clone the repo

    git clone https://github.com/pranaovs/qashare.git
  2. Switch to the directory

    cd qashare

Running the Server

  1. Switch to the project directory

    cd server
  2. Install the dependencies

    go get
  3. Run the app

    go run .

Running the Server with Docker

  1. Download and edit the docker-compose.yml file to set your environment variables.

  2. Run Docker Compose

    docker compose up

Installing the client

  1. Switch to the project directory

    cd client
  2. Install the dependencies

    flutter pub get
  3. Run the app

    flutter run

API Documentation

Swagger Check

The Qashare API is documented using Swagger/OpenAPI. You can access the Swagger UI by navigating to: https://qashare.pranaovs.me/swagger/index.html

The Swagger UI provides:

  • Complete API endpoint documentation
  • Request/response schemas for all operations
  • Interactive testing capability (try out API calls directly from the browser)
  • Authentication using JWT Bearer tokens

Roadmap

  • Set up Flutter client structure
  • Set up Go backend with Gin framework
  • Implement PostgreSQL database integration
  • User authentication and authorization
  • Expense tracking and management
  • Proper logout flow
  • Create frontend (not the vibe-coded slop)
  • Payment settlement
    • Frontend integration
    • Settlements in db
    • Settlement verification
  • Bill splitting algorithms
  • Group management features
  • User spending reports
  • Guest Users
  • Permission management
  • Edit history
  • Data import/export
  • Statements generation
  • Bundle server in client for fully-local usage
    • Upload to cloud option
    • Open embedded server to LAN

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the AGPL-3.0 License. See LICENSE for more information.

Maintainers

Contact

Pranaov S - @pranaovs

Repo Link: https://github.com/pranaovs/qashare

Acknowledgments

About

A (mobile) app to track shared expenses and split bills easily

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •