File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Basic ERP in Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Basic ERP in Java" Watch "Basic ERP in Java" New topic

Basic ERP in Java

Shailesh Aggrawal

Joined: Feb 06, 2013
Posts: 1
Hello good folks!

I am taking up a small-scale freelance project and need some help from experienced developers.

My background: I have decent experience with Core Java in the past but have been working in C++ for the last 2 years. I have received training in some Java EE concepts/frameworks like struts, servlets etc. My knowledge of available technologies is severely limited, but fundamental programming ability is high.

The project: I am building an ERP system from the ground up for a 30 person organization in the trading sector. The system will be built module (like CRM, inventory management etc) by module, and will be quite simple in terms of functionality. The true challenge is in building a product for very novice users and understanding their requirements correctly.

Approach so far: Since most of the use-cases can be solved by using the MVC approach, given my past familiarity Java (plus how easy it was to use), and the familiarity most people have with browsers, I want to build a web application that will be hosted within the company's intranet. This is the only design decision so far.

1) This is the first time I'm embarking on an individual project like this, any advice is greatly appreciated.
2) What set of technologies (Java frameworks?) are a good fit for this project? My front-end skills are very low, and I want to minimize the efforts there.
3) The product will be incrementally delivered. How can I achieve this? How to design to support upgrades?
4) My knowledge of packaging an application for release and installation is almost null. Any resources for learning this? Specifically, a DB like MySQL will be required on the host machine, how to package this?
5) One of the biggest challenges is that the users are not at all tech-savvy and will not be able to deal with failures. How can I guarantee a very robust end-product, with minimal number of outages that require them to contact me (and lose access to their ERP in the time being) ?
6) How do I select a server (tomcat? JBoss?) to be well-suited for this project?
7) I remember ORM being powerful but difficult to implement. Is it really important? Or should I just use JDBC method calls to execute queries?
8) Any thoughts on creating back-ups (to prevent loss of business data) and logging?

I took up this project to learn and because I am passionate about this giving customized solutions (want to turn this project into a reusable product and build a career out of it). Please share your expertise on the above questions and any concerns that my inexperience could have caused me to overlook. Also, any relevant resources that would be really useful.

Thanks for reading
- Shailesh
Ivan Jozsef Balazs

Joined: May 22, 2012
Posts: 970
> How do I select a server (tomcat? JBoss?)

It also depends on the technology you intend to use.
Tomcat is a servlet container, but it is not a fully fledged J2EE environment - well not without Apache TomEE.
Junilu Lacar

Joined: Feb 26, 2001
Posts: 6529

Well, you certainly have a basic handle on the different issues you'll be facing. What you wrote shows both your inexperience and the kind of attitude you'll need to overcome the challenges you face because of it.

Let's start with the positives:
1. You realize that this needs to be delivered incrementally.
2. You are asking some good questions
3. You are willing to admit your lack of experience
4. You are passionate

Causes for concern:
1. You need to revisit your understanding of ORM (Object-Relational Mapping). JDBC and ORM are not mutually exclusive. If you use straight JDBC, you are basically doing ORM manually as opposed to doing it with a framework like Hibernate.
2. ERP systems are complex and complicated. Sure, you may think it's simple at first but that view will be quickly shattered when you start full-blown development.
3. A DB like MySQL already comes packaged. You need to install it on a host machine. You have to do this as part of your deployment.
4. Selecting a server: depends on how much money you want to spend and what kind of features you need on the server. Also, what level of experience/expertise do you have with installing, configuring, securing, maintaining that particular product?
5. Technologies: I like the Spring Framework. It's very comprehensive and mature. I definitely recommend a build and continuous integration system. Build: Maven or Gradle. CI: Hudson/Jenkins. Monitoring and stats: Sonar. Version control: Git or Subversion.
6. Front end development: Spring Roo or Grails might be options to consider. There will be a learning curve.
7. Thoughts about backups: Yes, definitely needed.
8. Logging: SLF4J and Logback

Last but not least: for Pete's sake, get someone to help you! This kind of undertaking is not for the faint of heart and it has the potential to either launch your career or scuttle it before you've even left the dock.

Junilu - [How to Ask Questions] [How to Answer Questions]
Bob Pd

Joined: Oct 23, 2013
Posts: 1
hi there,
how is your progress with this going?

i am about to embark on a very similar project as well. however the only difference would be as opposed to using java, i want it to be a total html5, css3 & javascript implementation with an oracle db at the back.
I agree. Here's the link:
subject: Basic ERP in Java
It's not a secret anymore!