/easyRest

example of CRUD application that uses: Spring4, Spring Data Rest, Bootstrap and others opensource projects. See readme.md for details

Primary LanguageJavaScript

CRUD Application Test

Build Status

Getting Started

The application uses the latest open-source libraries and projects:

- JAVA 1.7
- Apache Derby
- Spring
- Spring Data Rest
- Hibernate
- JSP
- HTML5
- Datatables (https://datatables.net/)
- Jquery Datatables Groupin (http://jquery-datatables-row-grouping.googlecode.com/svn/trunk/index.html)
- Custom Taglib
- JQuery UI Bootstrap https://github.com/jquery-ui-bootstrap/jquery-ui-bootstrap
- JQuery
- Javascript Template https://github.com/blueimp/JavaScript-Templates
- Bootstrap 3.1
- Javascript

I applied the MVC Design Pattern. Spring Data Rest allows to me to write less backend code to handle sorting, pagination and to provide a RESTful service and HATEOS. I wanted to separate Bug and Story entities, but to display in a list ordered by creation date, it could be more easier using the same entity and adding a private attribute that specifies the type: "Bug" or "Story". The algorithm for project plan, it's easy, but I should filter on status for Story. It's possible to do that by adding a new query that allows filtering on status. I added a backend support for i18n. I handled some common exceptions and validations. I should improve error messages on AJAX call and clean the jsp from hard-coded values. The jsp code should be less redundant, and I should add the decorator design pattern. "Sitemesh" could be an example. You can create the war project by typing:

mvn package

It's also possible deploy on tomcat if you configure your tomcat-users.xml and maven settings.xml.

mvn tomcat:deploy

Welcome url:

http://localhost:8080/easyRest

The application uses H2 Database. To populate the Developer table, you can use curl:

curl http://localhost:8080/easyRest/rest/developer -d "{\"name\":\"John Smith\"}" -H "Content-Type: application/json"

Also, load_names.rb file is provided, that will load the database with the contents of names.txt

If you deploy on tomcat add -Duser.language=NO in your tomcat launch configuration