Skip to content

splitwise LLD and django rest interface

Notifications You must be signed in to change notification settings

ankitrao103/splitwise

 
 

Repository files navigation

Splitwise REST Interface - Python/Django

REST based interface for Splitwise


NOTE

names have been used as unique ids just for the sake of presentation, real world app should be based on UUID.


Setup

  1. Docker Based

    Prerequisites

    1. Docker
    2. run command
docker-compose --build
docker-compose up -d

This will expose 0.0.0.0:8000 port for API.

  1. Local Setup

    Prerequisites

    1. Python 3.9
    2. Pip
pip install -r requirements.txt
  1. Run the command python manage.py makemigrations && python manage.py migrate && python manage.py runserver 8000 This will start the server at localhost:8000

For Usage - Use postman collection provided alongside code

Import the collection to postman and you will be able to see the endpoints and use them Also set an environment variable in postman

Variable Name = url

Variable Value = http://127.0.0.1:8000/api [local setup] or http://0.0.0.0:8000/api [for docker setup]

The API Supports the below operations though rest endpoints:

  1. Create User [/createUser]
  2. Create Group [/createGroup]
  3. Add member to group [/addUserToGroup]
  4. Add personal expense between 2 existing users [/addExpense]
  5. Add group expense [/addExpense]
  6. Show Group Expenses [/groupDetails]
  7. Show Group Members [/showGroupMembers]
  8. Show the user details [/userDetails]
  9. Record a personal payment [/recordPayment]
  10. Record a group payment [/recordPayment]
  11. Delete a user [/deleteUser]
  12. Delete a group [/deleteGroup]

Test Cases

Test cases are available in splitwise/tests.py

To run the test cases, run the command python manage.py test

About

splitwise LLD and django rest interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Dockerfile 1.0%