My First CfWheels App - MyRides
For some time now I've wanted to build a new web application from scratch using one of the many frameworks available for ColdFusion so that I could get a better feel for MVC frameworks in general as well as evaluate the tool to increase my coding productivity. A couple of months ago, I started to use the MyTracks application for Android to record my bicycle riding this season so that I could see all of the rides in one place and see some statistics as the season moved on. Right away, I determined that it would be nice to import the data from MyTracks into my own database and then build a web app for looking at the data and statistics all in one place. After looking at several different frameworks, I decided on CfWheels and started working on my new application.
The idea behind my app, MyRides, is to store the data collected from myTracks and then use the data to show ride statistical data and visual views of each ride using Google Maps. The app is using the following technologies; Railo, CfWheels, MySql, and jQuery. As I'm not using using Adobe ColdFusion on the server, I had to use several work around solutions to several issues that I ran into and want to give thanks to Andrea Campolonghi for making some updates to RailoAjax as well as the CfWheels and Railo Google Groups lists. I'm still very much so a CfWheels beginner, but feel that the continuation of this project will help me to learn the powers of this framework. I plan to break down the application into the different pieces and post future blog posts on the how I coded each of those pieces. Of course, I'm hoping that other CfWheels developers or any Coldfusion developers in general will give me some feedback and recommendations on how to improve what I already have, as well as insight on how to best complete future enhancements to the app.
As the app currently stands, I have a main page that shows all of my rides in a jQuery data grid and some statistics about those rides. Clicking on any of the rides in the data grid will show the details of the specific ride as well as a google map view with the ride placed onto the map as an overlay. I also have a import process that reads the data from a Google Docs spreadsheet and imports the data into my own database. I currently do not have that code running within the framework, but instead it is running as procedural code from the miscellaneous directory. You can check out the app in its current state here.
So far I have found the CfWheels framework to be fun and exciting to work with and really look forward to learning more about it. I also want to look into FW/1 and Model Glue in the near future as well and hope that this project with CfWheels will ease my trepidations against frameworks.
Comments
@Raul - I would be willing to release the code. I hope to have it up on the projects page of this blog over the weekend.
Awesome work on the interface and functionality. Thanks for sharing. Would you mind tagging or categorizing this post and future posts about Wheels with something like "cfwheels" so I can grab the RSS for our aggregator on cfwheels.org?
@Chris I added the cfwheels tag to this post. I meant to do that in the first place, but obviously forgot. Thanks for letting me know. I still feel like a complete cfwheels novice, but have really enjoyed working with the framework so far. I'm excited to learn more.
I enjoyed this post and that's a slick application. I'm a newbie to CFWheels like you. I have found it to be great to learn and work with. The first time I read this, I did not have an Android phone, so I was not aware of myTracks. Now that I've ditched my iPhone in favor of an Android phone, I think I may actually try to build this as a learning exercise. I've never used jQuery before so it could probably go a long way to helping me there as well. Thanks again.
Ken, definitely start learning jQuery. The more you learn it, the more you love it. You'll be like, "Why the heck did I wait so long to learn this???" Look at the first block of JavaScript on this post and compare with the last block of code, which is a rewrite in jQuery. You'll be amazed at how much more succinct it is, and strangely, it's fairly readable once you get used to jQuery. http://www.clearcrystalmedia.com/pm/my-first-usage-jquery/
Sweet!, are you planning to release the code? that way I could help you if you wish :)