📜 ⬆️ ⬇️

Home Accounting System Finance - koshelek.org

Image Hosted by ImageShack.us
Greetings to all. Today I would like to advertise a little and tell about my small project dedicated to the home accounting system of finances “koshelek.org”
and how I did it.

PS I want to say that this is not my system, if I make an invite, I will invite a person here.
PPS Site has a habro effect. Load on db. Hoster said he would not include it.
If you have in mind a hoster with JAVA support, write in the comments.


')
Somehow, with the next payment of utilities, I ran into a problem - a shortage
financial assets.
This situation did not suit me very much and after some analysis I came
to the conclusion: I have enough money, and the shortage is obtained only because of illiterate management of them.
Realizing that it would be nice for me to control my finances, I began to look for ready-made solutions.
I found many useful and convenient programs and sites, but some had an attachment to IE, others
Were very accounting (including interface), but all the rest are paid or low-functional.
From all I have tried, I would probably recommend drebedengi
It has a good and convenient interface, the ability to work through the program for the PDA, but is a paid project.
In the end, so that life does not seem like a fairy tale, I decided to cooperate with a friend and invent a bicycle.

A bicycle is not only a means of transportation ... ... it is also our life.

About a month ago I started writing home finance system koshelek.org, and I want to share my experience as I organized everything. The programming language was chosen java - this is my favorite programming language. My choice is absolutely biased! I do not intend to impose this language on anyone, any other language could be in place of java. I just want to convey to you that which is not in the language of programming, but in the approach.

By nature, I am a programmer and, if I do the technical part with a bang, then everything will be bad with design, spelling check and website promotion, and doing everything to one is the wrong approach. As a result, the first task is to find like-minded people among friends, acquaintances or random people who will be interested in participating in this project. The search for such people is a separate story. Next comes the question of coordinating people. At the moment there are only two of us, but we need to coordinate our actions now. From time to time we have certain problems and misunderstandings, and they then also intensify due to a different mentality: I am a developer, He is a person with creative potential. Naturally, we do not live on the same staircase, and the opportunity to come to visit, to discuss all the issues, is simply not there, but sorry.

If it were, it would be nothing. If, of course, it was so.
But since this is not so, it is not so. Such is the logic of things!

For our coordination, I decided to install the Trac project support system. You may think that this system is only suitable for serious projects, but it is not; even a small site must be done by the rules. The Trac system contains a convenient wiki, a raw browser and a ticket system. The whole turnover of texts, design versions and everything else we began to lead with a friend through the wiki, work planning through the ticket system. Also in Trac there is a timeline, which clearly shows who did what during the day. This system clearly standardized and structured mutual work, thereby helping to minimize “childhood diseases”. With the help of Mylyn and Eclipce, I connected the development environment to Trac and my work with the project support system became even easier.
After we decided to coordinate the project, my friend invented the appearance of the site, and I began to think about the architecture of the system. The main approach is smaller bicycles, launching soon and with the possibility of further scalability. I settled on the following set:

Ioc Spring Framework :
The choice of Spring was justified by the fact that this is a good replacement for EJB and it does not need to search for hosting with a mature server of the application. Spring has its own MVC, but for some reason he was not very pleased with me, maybe he didn’t look deeply, but I chose Struts2.
On Habré there is a wonderful article a brief introduction to the Spring Framework

MVC Struts2 + tiles
Struts2 is a very powerful and convenient MVC library; using it with tiles I solved the problem of common templates. Spring and Struts2 are very easy to integrate and perfectly interact, here you can read how it is done.

ORM Hibernate
Another article on Habré Basics Hibernate
About ORM, I think everything is clear here too - Hibernate has long been a leader.

After spending a couple of days, I set everything up and was ready to write the site.

- A gun. They charge the gun! What for? And ... they will shoot!

So, let's start charging the gun. The first task was to build a model (if anyone does not know, the model is an object representation of the data). I drew a model in the form of UML schemes, using a plugin for Eclipse eUML2 . Very handy toolkit, on the go generates code, moreover there is a free version. Next, we recall the principles of scalability and for working with ORM we select the DAO design pattern and stamp methods for the model to interact with the database (in our case, the ORM Hibernate).
Our model is ready, DAO too. Not really ready, but because we have a scalable architecture;), therefore, we believe that we are ready. The Spring Framework makes it easy to associate DAO objects with MVC controllers, for us this bundle is absolutely transparent, we can only stamp the pages. The principle of writing pages I will not describe, in this case, who is at that much, I will focus only on the following: One of the tasks was to write a project quickly; for this, you use the tags from struts 2 as much as possible, since there are not enough of them and they solve a huge number of problems. I also note that it is better not to write the text in clear text in views, but rather to use i18n. What will i18n give us in the future? And it will give convenient editing of texts through one or several files, then who will do it, as well as the possibility of easy localization of the site into many languages. For Eclipse there is a very handy ResourceBundle plugin for working with properties i18n files.
For many tasks, a task scheduler, sending letters, periodically cleaning the database from demo user actions, etc. are required. To solve this problem we use Quartz. Quartz integrates well with Spring, a description can be found here.
So - the site is ready. Now you need somewhere to mark it. JAVA - a specific thing and hosting for it is difficult to find. Wandering around for a few days on the Internet, I found inexpensive hosting www.1gb.ru with the possibility of running JAVA on it. The cost of hosting is 340r per month, the quality is good, I recommend.

In almost all matters the most difficult is the beginning.
What did we get in the end?
It turned out, I think, a good service, simple and intuitive, which will allow you not only to control, but also manage financial resources. There is a multiplayer mode that allows you to combine accounts into one family, and with different usernames and passwords have a common budget and statistics. You do not need to download expensive software to calculate your finances! No need to send SMS to activate! We offer you a great service absolutely free! I hope to receive not only positive, but also negative feedback in order to continue working on the service and make its work more simple and useful.

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


All Articles