Expense Splitting Web App ( similar to Splitwise):
Primary purpose of the web app is to keep track of your expenses, payables and receivables to individuals.
Docs available at: https://yaes-api-docs.herokuapp.com/docs
- Add users to your app. You will eventually split expense with them.
- Add expense and it can be sharable among selected users.
- Visibility of payables and receivables per user.
- Visibility of total payables and receivables.
- Visibility of all the individual expenses involving you at once place.
- Settle up with any user.
- Delete any expense.
Clean Architecture by Robert Martin
- Dependency rule: Source code dependencies can only point inwards
-
Entities (entities)
Defines all the Models in the application
-
Repository (users/repository, expenses/repository, payables/repository)
Encapsulates the interaction with the database. This is the lowest layer in the application.
-
Services (users/service, expenses/service, payables/service)
Orchestrates the interaction with repository and other services.
-
Transport (users/http, expenses/http, payables/http)
Encapsulates the interaction with application over an http API
-
Binaries (cmd/server, cmd/migration)
The code in cmd/server ties all the layers together, in order the start the app.
go get -u github.com/algogrit/yaes-server/cmd/yaes-server
cd $GOPATH/src/algogrit.com/yaes-server
make setup
make run
make dev-setup
make dev-run
make setup-docs
make docs
DB_NAME="yaes-test" make setup-db # Only first time
make test