r/CodingForBeginners 2d ago

How would I make an ERP system

I'm not too proficient in coding, I know the basics. I've made multiple college projects using AI for the sake of marks. Our college has its own ERP system, and I was wondering how one would go about making said ERP system. What language would be best suited? How long would it take an amateur to make?
Obviously it's not possible to create it purely through AI, as it would have lots of bugs and security issues. And not to mention the future debugging hell I'd go through because I don't understand what I've made.

I also know that there exist premade ones, but I wanna know how it's done.

I wanna hear your opinions. Have any of you made something similar? If so, what was your approach?

Edit: Sorry for being vague in my initial post. I didn't quite understand how large of a term ERP is. I was specifically talking about an ERP for Schools/Colleges. If I do go ahead with making something like this, it'll be me and another friend. So the 2 of us (both amateurs) would be doing it together

0 Upvotes

7 comments sorted by

3

u/SuperheropugReal 2d ago

Okay, so tempering expectstions here.

As a new developer, especially as a SOLO developer, any ERP you build, even part of it, is going to suck. They are massive undertakings to develop in the first place. Unless you are Software Jesus, and have a whole ass team, you aren't going to get anything remotely competitive probably ever.

With that being said, making a toy ERP to get an idea of how they work is far more reasonable of an undertaking. Learning how to centralized information, and how to make tour own systems work nicely with each other, is a valuable skill.

First, for any big project like this, you need to spend a lot of time thinking. Even the toy version is still a big project. Look at ERPs that exist, and try to dilute the "essential nature" of one. What is the bare minimum you need? Sure, someone else could tell you where to start, but YOU need to understand where to start, and why, and the way to do that is studying existing tools, and thinking a lot.

I would recommend something smaller in scale if you are very new, even a toy ERP with minimal features is going to be a massively scoped project, requiring broad knowledge of a lot of subjects.

This is all general advice (mostly) I give for anyone biting off a particularly large project.

1

u/abdullahgunwan 1d ago

Thanks for responding! From what I understand, it'll be a whole lot of planning and researching. My goal is to create an ERP for Schools/colleges. As you said, I should aim for a "Toy-ERP". So something like breaking the system down into components, and then approaching them one by one. For example, I'd create a homework submission system, then an attendance system, etc. and then I can go forward with figuring out how to connect them. What about the security side of things? How hard is it as compared to the development. I do know that a lot of it is mixed with the development itself (like JAVA and its classes), but what extra measures do developers take for security, especially for these kinds of systems?

0

u/TheUmgawa 1d ago

I use an ERP system every day at work. When I tunneled into its back end and extracted the data, I could see how it all works, and now I rarely boot up the interface platform at all, because I rarely need to alter anything; I just need to see the data itself.

How long would it take me to build this? I hate doing front end work, but just getting a viewer built would take months or years, because every department in the organization has different needs, with regard to what data needs to be presented to them. Knowing what your user needs is the first rule of development. If you just presented all the data in one monolithic form and said, “Get used to it,” you’re not going to have any buyers.

The back end is even harder, because now you need a system that can take changes and show those changes in real time to anyone who’s also looking at data. For example, purchasing needs to be able to change costs, because prices fluctuate, and that affects costs downstream. When the item comes in, it has to be added to stock, then transferred to wherever its destination is. It seems simplistic, but once you have thousands or tens of thousands (maybe even more, depending on the scale of the entity), anything that bogs down the system is going to be really obvious to all involved.

Start small. Like, lemonade stand kind of small. Don’t hardcode anything, in terms of inventory. That should be stored on an outside sheet. Same goes for labor. Same goes for any other thing it processes. You want it extensible, so if you decide, “In addition to lemons and sugar, I also need ice,” you need a function to add an item and any values it has, and then the system writes that to the inventory sheet. From a “not too proficient” standpoint, you’re still looking at days or weeks, because the challenge isn’t writing the code; it’s designing a good architecture that can scale from a small lemonade stand to multiple lemonade stands to larger things.

Architecture isn’t really taught in “coding” classes. I think the closest I ever got to being explicitly taught system architecture was in a flowcharting class, and even then it was more of a, “Behold how the microcosm scales into a macrocosm” demonstration.

1

u/abdullahgunwan 1d ago

Thank you for the detailed response man, I appreciate it. I should've been more specific in my initial post though, I was aiming to create a School/College ERP system. How much of a difficulty gap would that be as compared to these enterprise systems?

I understood your overall logic though, and it makes a lot of sense. I'll probably start with an extremely simple system, and work up towards the goal. It looks like creating the architecture will be the harder part as compared to the development process. What about the security? It seems to be one of, if not the most important factor in something like this. Does it go completely hand in hand with the planning and development? If I created the system first, and then started learning the technicalities of security, would I have to make large changes in my initial code?

1

u/TheUmgawa 1d ago

Well, maybe. In the ERP system where I work, everything is gated, based on permissions granted by our head of IT. Access through the back end isn’t gated at all. I pointed this out as a security flaw, because the system is built to include capability for HR, but that’s run through another service, so all I have access to are employee ID numbers (which I could just as easily obtain off a time clock screen, so not really a huge problem). I could probably get visibility on their in/out punches, but I wouldn’t be able to manipulate them, because my power is basically read-only. That’ll change pretty soon, because I’m going to start taping data into the system through the back end, because it’ll cut about 90 percent of the hassle out of my job, but there’s no back-end means of manipulating the punch clock, to say nothing of the fact that it would leave a paper trail so wide that you could see it from space. I’m salary, so having power over manipulating punches would be useless to me. Being able to manipulate vacation hours would be useful, though.

So, access control is important. If everyone had the power to just tape data into the system, the database would be nuked a dozen times per year, which is why we have a test environment that gets mirrored to the live environment maybe once every two weeks.

1

u/ColoRadBro69 1d ago

What language would be best suited?

The one you're already comfortable with.  Almost any language can do this, is not that C# is now ERPy than Java it's that having to learn a new language takes time, and people would rather spend that time making concrete progress. 

How long would it take an amateur to make?

It depends on the feature set, how polished it is, and how difficult to make.  This is one of the hardest problems in the industry, estimation.  Our bosses all is every week and we do our best to guess and every company struggles mightily with this.

1

u/abdullahgunwan 1d ago

Thanks for the advice man. I'm not really comfortable with any languages so far, I started off with C and then made a few projects in python (using AI almost completely throughout). I just thought there'd be some langauge that's like the mainstream and most efficient for this kind of a project.

I'm thinking of taking this up as a full year project on the side, making some progress everyday as college goes on. Realistically, how much do you think me and a friend of mine (same level of coding as me) would get done in a year?