How Do You Organize your Project Files?
Posted by Chris Griffin on March 08, 2007 at 08:36 PM
As a web professional, freelance or full-time employee, it’s important to keep project files organized on the computer. It needs to be done efficiently for the same reasons one would keep a file cabinet in order—to catalog, to retrieve and find, to archive, except the digital file cabinet is much more flexible when it comes to filing away digital work.
Below you will see how I organize my projects, keep in mind I’m predominantly a designer so my system will cater more to the designer than the developer. Also keep in mind my work machine is a Mac, there are references to OS X.
A Couple Rules
My personal preference is to drill everything down by client first.
I try to keep the directory structure as simple as I can. Too many useless directories will just clutter up digital filing cabinet and adds more clicking and typing than there needs to be.
I keep most of my directory names lower case with no spaces because it’s a bit more command line friendly. Although, directories aren’t case-sensitive when it comes to the command line, it is case-sensitive when using auto-complete (typing 2 or 3 letters of the directory and pressing TAB). I have OCD when it comes to capitalization so this took awhile to adjust to.
File System
I will start by highest in hierarchical order, then dwell all the way down and repeat.
workspace - this is the home directory for all my projects and digital assets. This is located directly in the home directory on my Mac.
workspace/Assets - This is the location of all my design assets that I can use for any given project. This includes fonts, icons, photo stock, and project documents (contract)—anything that isn’t specific to any of my projects that I can re-use. Every asset is split up into its own directory and named accordingly.
workspace/blog - This is where I keep anything relating to this blog. Since this is relatively new directory I’m a bit unsure how I’m going to organize this.
workspace/blog/[entry title] - Where I keep drafts of my blog entries, source files and images that correspond to the specific blog entry will also go in this directory.
workspace/clients - Where all my client work is located, the most active directory.
workspace/clients/_archive - Where I keep all of my old design/code (the underscore sorts this directory first when sorted by alphabetical order).
workspace/clients/[client name] - Name of the client, if the client has a long name and/or the name is made up of more than 1 word I will shorten (or abbreviate) to how I see fit (dashes or underscores work too).
workspace/clients/[client name]/[job number] - The best way to organize projects is by each job. There is also the chance you will have numerous jobs for the same client. This is where the job number comes in. To number the projects, I use the first 3 letters of the client’s name and the next 4 numbers represent the actual job number (AAA-0000). Let’s say that I have Jojo Tires as a client, and they are a new client so this will be the first job for them. The job number would be JOJ-0001.
workspace/clients/[client name]/[job number]/design_reviews - This is where I keep all my design reviews. I number and label the client approved screenshot with the color red. I’ll create a directory for each section of the website that has a screenshot
workspace/clients/[client name]/[job number]/from_client - All files from the client are located here. I create a directory for each type of file (photos, documents, copy, etc).
workspace/clients/[client name]/[job number]/project_docs - All project documentation goes here. This includes the digital version of estimates, work orders, contracts, invoices, etc.
workspace/clients/[client name]/[job number]/source_files - All source files go here. This would includes mostly design comprehensives (Photoshop documents - .PSD) and branding/logo files (Illustrator documents - .AI).
workspace/clients/[client name]/[job number]/www - You guessed it, this is where all the development happens. Right now I use MAMP + Headdress for PHP development (I don’t actually develop using PHP, this is method I use for designing blogs that run on PHP), and I run my Rails apps from this directory that I develop locally.
Back to the top (workspace directory)
workspace/misc - This is for files I can not categorize with anything else. Right now I keep my resume and my random photoshop stuff that I did for fun.
workspace/personal-projects - Where all my personal projects are located. Obviously, I sort these projects the exact same way as I sort my client work.
How do you organize your files?
Comments
There are 6 comments on this post. Post yours →
I like your folder name, “workspace” - Symphony21.com uses that for XSLT and data sources, so I’ve been slowly adjusting to it.
I’ve been doing front-end code and CMS templates exclusively for the past 8mos, so I keep my files in /Library/WebServer/Documents - localhost. Here’s my file system:
For my active client projects, I place the project folder in the finder sidebar and bookmark the localhost location. I could probably simplify things with virtual hosting - Headdress looks cool.
Rats! I’ve been Textiled! I used asterisks for the nested directories.
Hi Chris, I use almost the same file/directory system as you. Freaky-weird; I suppose great minds think alike. :)
Thanks for sharing in the post.
Jon-Michael,
I noticed you have a standard for filenames also.
I usually keep them very simple since the directory structure is pretty explicit. For example, for comps I’ll just simply name them 1.psd in numerical order by version.
Before this reading this post:
After i renamed Library to Assets (works alphabetically better now too)and added the _archive folder to clients. Ive also adopted your client subfolders - Your post’s as nicely organized as your folders, your blog’s going to do really well with practical, helpful insight like this. Thanks a bunch
Are your job numbers relative to the client or you have one system.
Client related: client-x/clx0001 client-x/clx0002 client-y/cly0001
Job related: client-x/clx0001 client-x/clx0002 client-y/cly0003
Post a comment
Required fields in bold.