📜 ⬆️ ⬇️

Open Source RIA on the Spring Framework


RIA - Rich Internet Application.
Spring Framework - application framework.
Open Source - open source. Take it and use it.
About what RIA application is developed, where you can watch it and take the source code under Habrakat.



Introduction

I think learning is worth it in practice. Practice should be meaningful and interesting. Those. we come up with an idea and try to implement it with all our might, using the studied technologies, tools, approaches, etc.
When I started learning the Spring Framework, I had the idea of ​​lists that simplify the process of repeating learned words. Those. reading the literature in the target language, we are faced with a word, the translation of which we do not know. We add it to our electronic dictionary, and in the evening we repeat new words, and we would like this list to be transformed for more effective repetition - to jumble words, and invert the direction of translation. Special entities have been created for the project:
Then came the idea to make different types of maps - not only a dictionary for learning the language, but also maps for abstracts. I wanted to be able to expand this diversity in the future. It was assumed that there would be a common part for all maps, and specific species should be inherited from it.
After a couple of months of leisurely work, the project was born. During this time, the design managed to change, OpenJPA changed to Hibernate , the js-object model was completely rewritten using jQuery UI , but the layout as developed for Chrome remained only for Chrome, although Firefox also looked bearable.

Little about technology

Spring Framework 3 - mainly used native DI , Spring MVC and Spring Security . Spring Security is configured only on the standard gears, using the differentiation of user rights using groups and roles. Direct access to the database on JDBC , the notorious remember me and md5- hashing - all inclusive.
Hibernate - configured using notations. The search used hibernate-criteria and some HSQL .
Tiles is a server side template engine.
View Resolver returns Tiles View (pages) or JSON if the template cannot be applied. Objects are converted to json format automatically using JacksonJson .
All this mess is going to Maven 'om.
Ajax is used extensively on the client side. Mostly too extensive. I would like to insert some caching layer. An object model has been created that replicates server-side entities, but with dynamic parsing of the structure of objects. Map objects are based on jQuery UI . With its help, object inheritance is easily implemented.
EJS is a client-side template engine. He himself picks up the template files, which is very convenient. Implemented translator module based on Microsoft Translator API , but not yet implemented in the system. Fonts are drawn using the Cufon library.
')
Server matters

Since the start of development, the project repository has been lying in various places. Because project sources were needed from different computers, then I first used Dropbox . I synchronized the project folder. After a week of torment, I started a local SVN repository and synchronized it already. Then I transferred the project to an online repository. I wanted to transfer the project to Git in the future, but first I still wanted to use SVN. In this case, the repository should be private. A quick search found unfuddle . Now, when I decided to seem, translated the project on github .
Service is hosted on jelastic . The project was developed for reverse proxy server architecture and under jelastic had to redo it a bit. Because of this, jelastic 'e has a strange bug - when you first enter the service, static resources are not given to the server. You need to update the page and then everything is ok.

Take away!

There are plenty of development examples on the Internet under the Spring Framework , so there won't be any worse from one. Any activity associated with this project is welcome.

Links

Project: http://memorized.jelastic.com
Sources: https://github.com/evgenij-kozhevnikov/memorized
Advanced analog: trello.com (UPD. By devIceMan )

Source: https://habr.com/ru/post/128968/


All Articles