James Hollingworth’s Adventures in Code

Icon

Muney: Financial Management for Students

Over the past year, I have spent quite a long time on my dissertation. I’m pretty proud of it and I have had quite a few positive comments from various lecturers (I’ve even been asked to write a paper on it for a journal). I’ve decided to write a few articles about my work, hopefully it will hope someone out. If your interested in it, my final report can be found here.

My project was a personal financial management application for students (the actual title was FAST: Financial Analysis for STudents although my final application was called Muney). Essentially I was having problems with my finances a while ago, being the good programmer that I am, I had a look at what software was available. To be honest, from a students perspective, Microsoft Money & Quicken are pretty terrible. Users are required to have a significant amount of financial knowledge to use them effectively. In their defense, these app’s aren’t really aimed at the student demographic.

This was obviously a known problem since I found a few web applications such as wesabe & buxfer, which were developed to solve just this problem. Although these applications are much more student friendly they were really basic, not offering solutions for tasks students are commonly pretty poor at performing (e.g. bill management, budgeting)

So based on this, I decided to develop a financial application which automates important monetary tasks and does so in a way which is easy for a student, with no prior financial knowledge, to understand and use. The application was written using C# & Castle Project’s Monorail framework a screen shot is shown below

The application had a variety of features including

  • Bulk importing financial information via an OFX parser (currently open sourcing the parser I had to write to achieve this)
  • Automatically renaming and categorizng transactions
  • Bill managment (including automatically discovering new bills and recognizing transactions as payments for bills via clustering techniques)
  • Automatic budgeting (including time series forecasting to predict a users expenditure)

Since i covered quite a few topics devloping these features, i’m going to split this blog into a series of articles. The application can be split up into three tasks, organizing, managing and planning a users finances:

Here are the articles discussing these tasks

  • Organization
  • Managment (coming soon…)
  • Planning (coming soon…)

Filed under: .net, c#, castleproject, dissertation, monorail, muney, ofx , , , , , , , ,

Monorail: Get client’s browser

For future reference, to get the clients browser:

    $Context.UnderlyingContext.Request.Browser.Browser

This is infact accessing the HttpRequest.Browser property so you can then get all the usual info like browser version:

    $Context.UnderlyingContext.Request.Browser.MajorVersion

Hope this helps someone!

Filed under: .net, castleproject, monorail, nvelocity ,

Visual Studio syntax highlighting for Monorail views

I was just having a look through the options in visual studio 2008 and noticed a new section for selecting the default editor for non-standard files, such as monorail views (.vm). Up to now i’ve either had to make do with the basic text editor or mess around with the registry, neither of which is that much fun. The dialog is in options -> text editor -> file extension you can then choose what editor you want to associate with each file extension. Hope this is helpful to someone!

Adding monorail views to vs 2008

Filed under: .net, castleproject, monorail, nvelocity, visual studio, visual studio 2008 ,

Web Hosting Workaround for monorail

So I recently needed to put an web app I wrote with monorail online. Ended up buying hosting through re-invent who have so far have been very good. The one big problem I soon realized was they (like pretty much every web hosting company) don’t support Castle Project and in particular Monorail. Basically whenever I tried to access a page it would just come up with a 404. So after many hours of hair pulling, I was about to give up and have a very painful rewrite in asp.net. Luckily I had another search on the forums and found out that most web hosting companies will block any non standard file names, i.e. .castle. So using the url rerouting in monorail, I just added the following rule


<routing>
<rule>
<pattern>(.+)(.aspx)</pattern>
<replace><![CDATA[ $1.castle ]]></replace>
</rule>
</routing>

After I added that, I found that everything worked perfectly. There are some problems with it, namely that in methods like RedirectToAction() it will add the castle extension. As a current workaround I have just add the following to the base controller:


protected new void RedirectToAction(string action)
{
Redirect(action + ".aspx");
}

I know its not the most elegant solution, but its better than nothing. Hope this helps some people!

Filed under: castleproject, monorail ,

NVelocity: Get Current Position In ForEach Loop

Just a reminder for myself, To the get the current iteration number in a foreach loop $velocityCount

Filed under: c#, monorail, nvelocity

my bookmarks