GithubHelp home page GithubHelp logo

dhanda's Introduction

Dhanda

A small and basic (atleast for initial release) business transaction tracking application for business owner (mostly for small business, retailers and shop keepers) of any business type.

This application (for now) is written entirely in C Language and only Unix based platform (Linux, MacOS, FreeBSD etc.) are supported.

This is (for now) a terminal based interactive application.

In this app you can:

  • Add party details
  • Search party by name and phone number
  • View details of party (including transaction history)
  • Delete party
  • Update party
  • Create transaction
  • Reverse transaction (Undo a specific transaction)
  • Search transaction
  • View transaction statistics
  • View business statistics (such as total number of parties and transactions, total amount of transaction etc.)

How to compile and run

Compile

make

Run

./dhanda

Exit from app

exit

Application flow design

Architecture is very simple: User input -> Update app state -> Render screen.

  • User input is basically user command given to application to perform some action
  • Update app state updates the application according to given command, like adding new data, updating, deleting, and searching.
  • Render screen basically showing the output of last command withing a nice and possibly pretty Text UI.

These three operations are done in a tight loop.

Future sope

TODO

PARTY

  • add created at and updated at
  • validate add/edit input
    • First/Last name should only contain alpha/num/space
    • Amount should be integer (handle it in input), don't use scanf
    • Phone should be 10 digit number
  • store sanatized input
    • First/Last name should be in title case
  • show date/time in list/show screen in ISO format

TXN

  • validate party ID (party must exist)

  • store sanatized input

    • First/Last name should be in title case
  • show date/time in list/show screen in ISO format

  • change the UI of show screen

  • change the order of the fields

  • Edit

    • on blank input take old value
    • show hint about what happens when user inputs blank
  • Add new function to push error message from db layer to app struct

  • Show that error message in UI rendering

UI

  • Add bg color in header and footer
  • make space for status bar (show stats on the status bar)

dhanda's People

Contributors

imskm avatar safwanhaider avatar tanweerkamal425 avatar mdwahidrza avatar iamhero337 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.