Projects
The following projects are things that I am working on in my spare time, not including projects I do for paying clients. My ambition is often greater than my amount of spare time, so I am generally working on no more than one or two of these at a time.Current Web Development Projects
|
MyCarProjects.net site info (ASP.NET/MSSQL) |
MyCarProjects.netCONCEPTMyCarProjects.net is a public Internet site that allows users to create a maintenance log, gas mileage log, and project log for their cars. MyCarProjects.net was conceived on 2/14/2007, and initially launched on 3/1/2007. The site is under constant development, and new changes and features are routinely added.TECHNICAL DETAILSScrollable GridView with Fixed HeadersAs designed, the ASP.NET GridView control does not support scrolling, or fixed headers. With some clever CSS and a few lines of code, it is possible to add this functionality. There are several different solutions out there, and most of them involve complicated Javascript, or CSS hacks, or something that doesn't support both major browsers (Internet Explorer and FireFox). I feel that my solution is ideal, and with some Javascript coding, it will also maintain the scroll position on page postbacks. Note that setting the "MaintainScrollPositionOnPostback" flag on the page level will only maintain the scroll position of the page, but not on any scrollable DIVs within the page. In my opinion, my implementation is the best out there when large amounts of data need to be displayed, and is even better than using the "Paging" on the GridView. Examples can be seen on each user's personal Maintenance Log page and Gas Mileage Log page.AJAXAll server side AJAX code is maintained in its own "helper" aspx page, because I do not have access to use web services with my hosting account.On the new "Register" page, custom AJAX is used to check if a user's chosen username is already taken. After the username textbox loses focus, the server checks for availability, and displays a label next to the textbox. On the "Member Garage" page, custom AJAX is used to "suggest" matching search terms as the user types in the textbox. This is similar to Microsoft's AJAX AutoComplete control. On the "Home/Login" page, custom AJAX is used to retrieve a user's forgotten username, using their e-mail address as the input. The user clicks the "forgot your username?" link, and a DIV pops up below with an input for the e-mail address. If the e-mail address is found in the system, the username is automatically entered into the username textbox, highlighted green to alert the user, and the cursor focus moves to the password textbox. If the account is not found in the system, a Javascript alert informs the user. Daily E-mail AlertsI do not have access to use "cron" jobs in my web hosting account, so my workaround is to run my daily job the first time a user hits the home page every day. The database calls are performed in a separate thread, so normal page loading is not affected. There are two database calls: one to see if the daily job has been processed, and if not, the second database call actually performs the task. I wrote a .NET class that generates and sends reminder e-mails to anyone who is supposed to receive one that day.The alerts themselves are generated using some sophisticated SQL processing, based on when a user last performed a maintenance task, and if the task is "almost due" or "overdue," based on both the due date and due mileage. The system predicts the current odometer reading for every car in the system based on many factors. Gas Mileage GraphsThe free "Webcharts" DLL is used to create a gas mileage graph for every car that has gas mileage records. A line graph is generated to represent how a car's gas mileage changes over time, and plots the line next to a "running average" line to see how the current trend stacks up against the car's long-term average.Upload PicturesUsers can upload a single JPG image of each car using the .NET FileUpload control. Files are stored in a separate directory on the server.SITE TRAFFIC
|
|
Foosball ScoreCard site info (PHP/MySQL) |
foosball.shawnrenner.comOVERVIEWThis project is my first foray into a complicated PHP/MySQL web application, and is just something I'm doing for fun to learn PHP and MySQL. The site is intended to keep track of foosball statistics and league info. Players will be able to log in, see a history of games played, win/loss statistics, and more. The site development is in its infancy, so there isn't much to see yet.Screen Shot #1 - This shows the screen where users record the games they played. When a game is selected from the dropdown, AJAX techniques are used to query the database and notify the user of how many players they need to select for the chosen game, and how many winners need to be selected. The submit button is not activated until the proper number of participants and winners are selected. For the list of players, JavaScript is used to navigate the DOM. When a player is selected, their row turns yellow, and it enables use of the checkbox to indicate if they won the game. |
|
Foosball ScoreKard site info (ASP.NET/MSSQL) |
Foosball ScoreKard [link not available]OVERVIEWThis project is something that I'm doing on the side for my office. It is a touch screen web application that will be used in our foosball room to manage tournaments in progress. The game history data can then be plugged into our new reporting application running on top of SQL Server Reporting Services. |
|
dinner.NET site info (ASP.NET/MSSQL) |
dinner.shawnrenner.com [coming soon]OVERVIEWMy wife and I often have trouble deciding what to eat for dinner. Those days will soon be behind us! This site will log what we have for dinner each night, and a sophisticated algorithm will create suggestions based on what we're in the mood for (i.e. "cheap", "healthy", etc.), what we haven't had in a while, and even what time of year it is. I am currently writing it with a goal to minimize the number of screens and postbacks, using sophisticated JavaScript, CSS, and AJAX techniques instead of relying solely on .NET server side code. |
Other Development (non-web) Projects
|
Email2FTP (Java) |
Email2FTPOVERVIEWImagine you are using a reporting application that sends you a daily report via e-mail. But let's say you need the report posted to your FTP site for further processing. You don't want to check your e-mail, save the file, and then upload the file every day. Email2FTP is a program I'm writing to solve this problem. Email2FTP can check your e-mail for you, and send attachments to an FTP site automatically.TECHNICAL DETAILSEmail2FTP is written in Java, using Sun Java Studio Enterprise 8.1. The engine that does all the work is a Java class library that a front end application will use. The e-mail connection is made using IMAP, and the user is given the option to move all processed messages to an IMAP folder of their choice. I am currently designing a user interface using the Java Swing library, and will also package it as a Windows Service that will check and process e-mail on an interval. It will also be possible to use the Email2FTP engine in a Linux daemon.KNOWN ISSUESThe following issues are things I am currently working on:
SCREEN SHOTThis shot is from a working prototype of the Email2FTP GUI.
|