What technology stack to use for a basic ERP implemented as a web application (and other concerns)?
-
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 http://www.coderanch.com/forums/f-58/Struts, http://www.coderanch.com/forums/f-7/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. Questions: 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? http://www.coderanch.com/forums/f-63/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 usehttp://www.coderanch.com/forums/f-3/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
-
Answer:
In my opinion: If you want to avoid HTML-like languages, and Java, then you have limited choices for web development. The only one I can think of is and its derived project, Vaadin. This will give you a programming model similar to Java Swing. The drawback is the output does not look too nice, in my opinion. For packaging and upgrades, the convention is still to ship SQL files for schema creation. The upgrades would be "migration files" that perform the alter table statements, and the like. I'm not familiar with tools that can do this for hand-crafted SQL. I just took a look and found this, might be worth trying - http://flywaydb.org/ Aside from the SQL file, there is no convention for installing MySQL along with the app server. The sysadmin will need to do this manually. (This is the reason why Java apps ship with an embedded Java database, which are not as performant.) For the server selection, will work since you seem to be using Java for plain "CRUD" (Create/Replace/Update/Delete). Embedded is another choice if you want to launch your app from the command line or from a GUI. would be useful for other parts of the Java EE stack - and features are the most important nowadays, next to the web platform. also has a rich web platform which I haven't tried - http://www.jboss.org/errai For , this really depends on the architecture and your level of complexity in the SQL code. ORM has clear benefits on a clustered system, since it introduces caching, but you are running on a single . I skipped: robustness of the end product - that is a big topic and covers architecture, coding and operations. I'll try to come back to this later. backups - I'm not familiar with MySQL backup options.
Miguel Paraz at Quora Visit the source
Other answers
Maybe you could use http://enterpriseapp.alejandrodu.com/. It makes it really easy to develop Java web applications using Vaadin.
Alejandro Duarte
I am using Vaadin till now for developing an HR system, also content management for banking company. The benefit of Vaadin mainly: yes you can almost avoid Javascript and HTML stuff and hired even junior level programmer who only know about Swing!. For ERP I suggest you use ORM like Hibermate or EclipseLink, but I prefer MyBatis. In business process side I use Activiti BPM, it's embeddable also JVM Scripting for customized functionalities and business rule. I use Google Guice for Dependency Injection, but I think I should move to Spring DI For the look and feel, since Vaadin is a stateful app framework, you can customize the theme CSS (it's relatively easy) or use Embedded component to combine with another app component written in JSP+JQuery like interactive Org-Charts.
Abiel Hakeem
Related Q & A:
- How to review a web application code?Best solution by Stack Overflow
- How to develop a web application?Best solution by Stack Overflow
- What does Politte Supply use: a sales journal, a purchases journal, a cash receipts journal or a cash disbursements?Best solution by Yahoo! Answers
- What do you think is a possessional looking font for a web application?Best solution by Webmasters
- What technology stack does Facebook use?Best solution by Quora
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.