Hacker News new | ask | show | jobs
ERP-Application in Python, PyQt5 and PostgreSQL
86 points by DirkJanJansen 2244 days ago
Download Link: https://github.com/DirkJanJansen/Pandora

ERP Application in PyQt5 and PostgreSQL relational database system.

Python3 powered. Interface: Sqlalchemy-Core.

Modules: Inventory, Sales, Purchase, Manufactory, Employees, Calculation, Accountancy (portal), Payroll administration, Management modules for inventory control and financial control with graphs are included.

For documentation and database structure see Documentation directory.

For instructions, installation and several screenshots see Installation directory.

11 comments

Looking at the Github, it really feels like you should organize your code better. There are many files with the same prefix that should go into their own src/{prefix} subdirectories. The README is really lackluster and should contain installation information and screenshots at least.

https://github.com/DirkJanJansen/Pandora/blob/master/invoerI... What the heck is this supposed to be? Are you really creating a database table and then a connection, and executing that in the middle of some random code? You really need to separate this out. And this is not a cherrypicked complaint, this is the first file I randomly clicked in the repo.

https://github.com/DirkJanJansen/Pandora/search?q=create_eng... This looks like you're creating a new engine anywhere you need database access. This is NOT how you use SQLAlchemy. Create a database.py file that contains a SINGLE create_engine function, and define all your tables in one place. This code looks like a real mess.

Don't take this as a personal attack. We all had to start somewhere. But this is not something I'd call top quality or really even quality.

I'm aware, that the code could be organised better. But keep in mind, that the program is not written by a professional. It's intended as an example for integration python with a database system for the community and i am convinced that the program helds many aspects as a learning purpose for instance integrating graphs. And screenshots by the way are available in the project at https://github.com/DirkJanJansen/Pandora/tree/master/Install... And as far as to your first comment over creating tables, this is not creating tables, but defining it to the program. I should read more accurate, before commenting
The problem is that if you are putting this out there for purposes of education, it should use best practices, and it clearly doesn't here. I suggest that you significantly refactor this code. I believe that it can become much better with more modularization, more clearly explaining some aspects of the code and better project structuring.
>The problem is that if you are putting this out there for purposes of education, it should use best practices

There's a French saying that goes "C'est en forgeant qu'on devient forgeron" (it is by "black-smithing" that one becomes a black-smith).

One way to discover best practices is by putting things out in the open and receiving benevolent feedback on how to do it better.

The code will improve as the author reads more about best practices to apply on a real project they have shared with the comunity, and a benevolent comunity submitting issues and pull requests.

Here's the link to create an issue in that repo:

https://github.com/DirkJanJansen/Pandora/issues/new

Putting something out in the open does not imply any duties.

If you are so concerned, fork it.

We look forward to seeing your version!
Cool. :)

As a general thought for "making it more presentable", it's probably a good idea to embed a screenshot right into the front page README.

Just from the point of view that "when things look attractive, people are more inclined to check them out".

(Yeah, it's a super generalisation, but it seems to hold true).

As an example, we have a screenshot as nearly the first element people can see:

https://github.com/sqlitebrowser/sqlitebrowser/

Since you already have a bunch of screenshots, it should be fairly simple to make happen.

Maybe these two, as they seem both clean and representative?

https://github.com/DirkJanJansen/Pandora/blob/master/Install...

https://github.com/DirkJanJansen/Pandora/blob/master/Install...

Thank you for your comment. I already link the Readme towards screenshots and installation file due to other remarks of users.
Yeah, my point is just to have the screenshot "right there" (embedded in the README) so it's nearly the first thing people see. :)

When people need to click on links to see the screenshot(s), it seems like a missed opportunity. ;)

Oh hey!! I use sqlitebrowser quite often! Thanks for you know making it exist and all.
You're welcome. :)
The project uses a mix of Dutch and English for symbols, docs and comments. Now you need programmers that besides Python, are also good with both Dutch and English. Sadly this greatly limits the audience.
Agreed, but that doesn't detract much from the achievement. A few screenshots would be nice, though.
Maybe putting some on the top-level README? those are two levels down, and inside a subfolder of "Installation", which I would not ordinarily look into for screenshots...
Links for screenshots and installation files are added to the Readme.md

Thanks for the hint

Are you sure you want your address out there?
Quite an accomplishment. Well done! How long have you been working on it?

Echoing others, I recommend improving the readme and embedding or linking to screenshots in it :)

Thank you for your comment. I worked about 600 hours on the project, i'm retired, so i have the time. The links to the installation files and screenshots will be included in the readme. Good idea, Thanks!
Kudos! This is the kind of stuff that inspires me.

I am trying to build a couple products to figure out which will work and I want to focus on that for the next couple years. But I suffer a lot from procrastination, shift in focus when it comes to own projects.

I checked your commits, really nice that you kept steady since mid-March. If I can do that for my current project, it would be something useful to share with the world.

Thank you :)

Nice. And reading Dutch comments knowing Afrikaans always brings a smile to my face.
But it severly hinders contributions and usage from the rest of the world. Had to do with an incident system where tables and fields had dutch names. I believe they are now renaming everything to English but that's a mess.
Yes, agreed. Knowing Afrikaans makes it easy to read dutch.
I’m no ERP expert but it looks functional. What are your goals with the project? Do you plan to monetize?

One immediate thing I’d do is have a landing page where the screenshots can take center stage and show people what this would look like.

I have no intention to make money with this project. I developed the program for the community for educational purposes as an example for database integration in python.
Favourite comment ever. Thank you giving back to the world.
Well done buddy! I am sure it was a nice amount of effort, so give yourself a pat on the back for releasing something useful into the world.
Why not just have it all in one language? Why the English bait and switch?
I developed in Dutch Later on i decided to document in English It's much work to translate the whole project in English Sorry!
The screenshots are dated 2017. Why are you posting this now? Has there been a major release?
The screenshots are recently, only the registrationmark is 2017, when the first ideas of the project started. The thirst publication on Github was 2019
Is this same with odoo?
Odoo is a professional project, whereas Pandora is not. Besides Odoo is developed by many persons., where Pandora is a 1 person project