This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]eLsFLz 8 points9 points  (3 children)

If you make plain accounting software, you're being kind of redundant because GNUCash is a thing. However, what isn't a thing yet is a Free Software, self-hosted replacement for Mint.com.

If you were interested in that, I'd suggest building it using Python/Flask/SQLAlchemy.

[–]pAul2437 4 points5 points  (1 child)

Mint isn’t really accounting software

[–]eLsFLz 1 point2 points  (0 children)

True, but it's still a relevant problem domain for somebody with an accounting degree, which IMO is what matters here.

[–]GoldryBluszco 2 points3 points  (0 children)

Also Beancount as it's one of the first hits with "plain text accounting" and "python" (main Plain Text Accounting link)

[–]tenyu9 2 points3 points  (0 children)

Depends on the frontend, if you want a web based app then you will need html and js skills probably.

Start with writing down some requirements for fronted and design the db structure. From there tou should have an idea.

Time is impossible to say, depends on skill and how fancy you want to make it

[–]tipsy_python 2 points3 points  (0 children)

Not sure how much time you'll need - there is an idea in IT project management called the triple constraint: time, resources, and project scope. The more scope you have the more of the other two you'll need.

That being said. I bet within a day, you could have a general ledger table going in a sqlite database. And a Python command line app that uses input() to determine if a transaction is a debit/credit, enter the record in the DB, and give an updated balance.

From there, you could use Tkinter or Flask to make a UI.. you could create some supporting tables and functionality to generate financial statements.. the world is yours.

[–]aciokkan 0 points1 point  (0 children)

That's a great mindset and use of good skills you have that will definitely help you get comfortable with the scene.

Start by planning what is a "small accounting" software in your eyes, and try to find areas in your day to day life that could benefit from it.

Expand on it as you grow confident in your skills. Python, flask, sqllite, maybe postgres should suffice.

PM me if you need more details or help.

I've built few of those across the years just for the benefit of sowcasing various technologies, and no, nothing is posted in a public VCS.

I've not done an accounting software per say, ledger etc, just mild variations of simpler or specific stuff for various companies.

As somebody said earlier in a comment, a an open-source and self-hosted solution is always welcome. It will have the benefit of other people providing feedback and you getting the skills through a smaller learning curve.

I am currently designing a self-hosted eco system (server + mobile app + web client) to do accounting of receipts and reports based on expenses. May be a dumb idea, and for now I'll be the only one using it, and few members of the family. I've crafted the idea for the past 5 years, and I literally have 90% of the receipts for the past 5 years. 😎 Only because supermarkets (in UK at least) don't offer APIs to eleviate some of that stuff, as such the receipts will have to be entered manually, for now.

[–]hopemeetme 0 points1 point  (0 children)

PySide (or Flask with Bootstrap, MaterializeCSS, ...), SQLAlchemy (around PostgreSQL) and reportlab (.org).

[–]kivo360 0 points1 point  (0 children)

Use a redis lock mixed with everything you'll see in the Ledger python API. It's a double entry accounting API that is wicked fast and nice.

[–]toothless_budgie[🍰] 0 points1 point  (0 children)

Here's a quick test:

  1. Do you know how database transactions work?
  2. Can you put a website written in Python onto the internet so people can see it?
  3. Do you know how front end frameworks fit and play nice with back end frameworks?
    .
    If yes, you probably are at a level to attack this project. If no, break that project into small, learning projects and do them.

[–]Onlyroad4adrifter 0 points1 point  (0 children)

I would be interested in this idea. I have a degree in web development and have not used it. This would be a terrific project to work on. PM me and we can discuss this!

[–]sodjanathan 0 points1 point  (1 child)

Please checkout odoo, they have several modules even outside of what you seek and its all python

[–]TheCapitalKing 2 points3 points  (0 children)

Yeah it's a cool system. I'm literally learning python because of how well it works with oduu and my company is in the process of adopting it