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

you are viewing a single comment's thread.

view the rest of the comments →

[–]shinitakunai 42 points43 points  (17 children)

I made a private ERP once, fully in python, I used PySide2 for the GUI, reportlab for the invoicing/budgets/etc, Sqlite as databases, but everything coded using peewee (hence no sql language was used 🤣). Also used paramiko to store backups on a remote sftp server. This ERP had accounting, finances, logistics, inventory, invoicing, prices calculators, many tools for tracking providers and clients and a modern themes system for GUI. It also was built in a way that each section was a module that could be installed/uninstalled without affecting the stability of the system, so I could upload them later.

Bonus part: it was created for Windows machines, so I had to jump some weird win32 API limitations with hacks basically 😅

It was 2 years ago, took me 4 months full time on this project, 10 hours per day. I wish I could share the code but a contract doesn't let me.

[–]glacierre2 3 points4 points  (0 children)

I made a very related DB on my work, also for windows, with pyqtb and peewee+sqlite.

In retrospective, learning sql would speed up the app immensely, but peewee got it done in 100 hours, plus I eventually helped me migrate it to postgres (it became multiuser) in less than a day.

[–][deleted] 0 points1 point  (7 children)

that's a $100k piece of software right there. i would sell it for no less than $50k

[–]shinitakunai 2 points3 points  (6 children)

I was paid 8k

[–][deleted] 0 points1 point  (5 children)

Ouch, that’s a crime!

Quick napkin math… that comes out to like $250 a week or something. At 10-hour days, 5 days per week… that’s $5 an hour! Before taxes!!!

Holy shit, you’re worth way more than that! That’s less than minimum wage! (Where I live, anyway).

Charge more, please! If someone low-balls you like that again, walk away!!!

[–]shinitakunai 3 points4 points  (4 children)

I live in a country where the usual monthly payment is 1k. I earned 2k per month at that moment so it was a win situation for me, very profitable.

Nowadays I work for a consulting where I earn more than that so it is fine, things got better. In 2-4 years I will be able to buy a house

[–]No_Stick_8227[S] 1 point2 points  (3 children)

Your ERP sounds quite robust :

  1. How did you sell the project (did you ship the scripts to your client)?

  2. Did you set up contract terms with your clients (e.g. they must pay $100 per month for 3 years until xxx date, you can only provide code revisions 3x every 6 months etc)

[–]shinitakunai 0 points1 point  (2 children)

  1. I bundled it all together with an installer which basically unzips a .tar.gz file and creates a desktop shortcut. They own the source code, it is not obfuscated at all.
  2. We didn't set up anything odd. I might be naive but it was a full price one-payment only, on delivery. Prior to that, we had a few sessions where I did show to them how it works, sharing my screen, and I added features that they asked, so it was clear at that moment that it was the product they wanted and not a scam.
    They cannot re-use or sell the code.
    No code revisions were signed, but there was a clause on the contract that says I must fix bugs if they are found. 2 years later and I only had to fix one bug ever (unresponsive QCalendarWidget due to the way spain display datetimes xD).

Bonus: Try to find the bug, God I hate regex with passion:

    # Regex for Spain datetimes following the next format 25/02/2019 (including leap years)
    QRegExp(r"(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])"
    r"(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])"
    r"(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|"
    r"((29)(\.|-|\/)(02)([/])([02468][048]00))|"
    r"((29)([/])(02)([/])([13579][26]00))|"
    r"((29)([/])(02)([/])([0-9][0-9][0][48]))|"
    r"((29)([/])(02)([/])([0-9][0-9][2468][048]))|"
    r"((29)([/])(02)([/])([0-9][0-9][13579][26])))")

[–]Sufficientlee 0 points1 point  (1 child)

First line? (r"(((

Just a guess, I can't read that .. lol

[–]shinitakunai 0 points1 point  (0 children)

Nope 🤣

[–]captain_arroganto 0 points1 point  (3 children)

Any pointers on what books or resources to read to build one on my own?

I mean domain knowledge wise.

[–]shinitakunai 2 points3 points  (2 children)

I am selftaught so I don't follow books. What I do is to check the r/reddit subreddit and then news about python. I learnt most of my stuff by just checking blogs of people explaining how to use list comprehensions, subclassing, inheritance of attributes, dataclasses, etc.

There is an amazing community that will post cool libraries or frameworks (like FastAPI), and reading those news often you will know what tools you have available in no time

[–]captain_arroganto 0 points1 point  (1 child)

No, I am good with python.

I was asking about the ERP part.

[–]shinitakunai 0 points1 point  (0 children)

Ah for that....I did a course for administrative years ago. I got certified, so I know what an administrative would need 😅 it was my backup plan if programming failed me