RESUME: Jonathan E. Tweedy
Protoglobe.com
|
HTML: Advanced
CSS: Advanced JavaScript: Advanced AJAX: Advanced MySQL: Advanced |
PHP: Advanced
ColdFusion: Advanced Perl: Intermediate Java/JSP: Intermediate ASP: Familiar |
Sample Personal Projects
I used XHTML and CSS to produce the design for each of the following projects, and then tied them to a LAMP backend (Linux, Apache, MySQL, PHP) for central data management. Most of the projects also integrate AJAX techniques to improve the front-end user experience by avoiding tedious full-page reloads and allow for more frequent updates to portions of content on the page.
College Search Map
Using the Google Maps API and my own Javascript, I created a map-based college search tool that allows users to select criteria such as cost, size, size of the surrounding community, historically black or tribal status and other factors, and then narrow down their geographic preferences and see matching colleges on a Google Map. Data was retrieved from IPEDS 2006 results using the data cutting tool publicly available on their web site, was stored in a MySQL database, and is retrieved using PHP. Users can log in to manage a list of favorites and a customized college application checklist for each. The tool is also available as a Facebook application. AJAX is used to store and load most information on the map, and the page is rarely reloaded unless using the favorites.
Weblog Interface
One of my first major undertakings was a weblog interface that allows one or more bloggers to maintain (optionally, depending on settings) one or more blogs each. Each blog can have multiple categories, managed by the user, and each weblog entry can be assigned multiple categories. Entries can be browsed by date or category, and users can leave comments without requiring a signup using an email-based confirmation system: they enter their email, which is stored but not displayed, and can then return later, provide their email address, and receive an email with a link to edit or delete their comment. Once again, the back end was developed using PHP and MySQL. Only limited AJAX is used: comments appear and disappear when the ?View Comments? link is clicked.
Drag-and-drop Content Management
I developed an interface to manage style sheets and create panel-based content pages. New panels can be created, edited, resized and dragged anywhere on the screen, resulting in absolutely positioned content, the location of which is stored in a MySQL database and retrieved again later to properly display the page to visitors. After resizing or dropping a dragged panel, AJAX is used to call a PHP script to update the location and size of the pane in MySQL. Similarly, after editing content of the pane in the text area (which can be toggled between a text area and normal view), the content is automatically saved using AJAX.
EduWISE: Educational Interactive Story Engine
This is a project that I put on the back burner several years ago, however it is functional on a simplistic level. It does not use any AJAX or Javascript, but still uses PHP and MySQL to process and store data, respectively. The story engine allows users to manage multiple stories, each with multiple pages that link to each other, similar to a ?Choose Your Own Adventure? story. A dictionary feature is included that allows the ?teacher? (or any author) to maintain a dictionary that can be applied to a story so that vocabulary words on each page will be clickable for a pop-up translation. Additionally, story and dictionary data can be ?saved? by generating a simplistic XML file that can be copied and pasted to ?open? the file in another, similar system. This feature allows independent instances of the site (as opposed to users on a central system) to share their stories without necessarily being on the central site.
These and other samples using XHTML, CSS, Javascript, AJAX, PHP and MySQL can be found at the following sites:
Sample Work-Related Projects
The research center?s various project web sites are hosted on a Windows Server running IIS, ColdFusion and Microsoft SQL Server. As the only developer in our office, I also do all of the front end work for the websites using XHTML, CSS, Javascript and AJAX, with the exception of occasional graphic design outsourced to a local company. Page layout, navigational design (sometimes using Firefox), and some graphic development using Photoshop is done in-house.
Unfortunately, access to examples of my most complex work-related projects is restricted to logged-in staff, so I am providing descriptions of more notable projects that I have completed in my current position, as well as a list of links to public areas of interest at the end.
Staff Login System
Indiana University utilizes a Central Authentication System (CAS) to verify user logins on many sites throughout the university system. Because all staff have IU usernames, this system is also used on our project sites to allow users to log in using their username, rather than creating a separate one. After login, the user is redirected to a pre-specified page that checks a ColdFusion global variable created by the CAS system upon login, after which the user is actually logged into our site. A separate table of IU IDs that are valid staff IDs is maintained on our departmental MSSQL server in order to prevent non-staff logins by other IU users.
Forms
I created a form management system to allow for quick creation of registration forms, questionnaires, orders, etc. There is currently no front-end, but rather I use an Microsoft Access file with several custom forms to connect directly to the MSSQL database to manage the web forms, questions for each, and possible answers (if not open-ended). A single script generates an appropriate questionnaire form based on the ID number passed through the URL, and user responses and answers for each question in those responses are again stored in the MSSQL database. Staff members can review, approve and delete responses from an administrative view that also allows for optional generation of a CSV file. This is my most widely-used applications, and also the most successful. We have used it for over a dozen Adobe Connect webinars, as well as workshop registrations and questionnaires of various kinds.
News and Publications Interfaces
Interfaces have been set up for adding, editing and deleting instances of discussion of our projects in the media, or for posting information about recent presentations and publications related to the projects. In addition to managing the textual information for each listing in a MSSQL database, an upload system is in place, and simple Javascript-driven frames on the add/edit page allow users to include previously uploaded documents or logo images with each posting. Once again, all information is processed and transmitted to and from the database using ColdFusion. The content on these pages is managed by student workers who are involved in research related to the respective projects.
Sample Links:
http://cpr.iub.edu/
http://nsse.iub.edu/html/inthenews.cfm
http://nsse.iub.edu/html/participating_institutions_query_engine.cfm
http://lssse.iub.edu/
http://lssse.iub.edu/2006_Annual_Report/index.cfm
http://cseq.iub.edu/
http://snaap.iub.edu/
http://nsse.iub.edu/e-news/index.cfm