We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7231
    • 4,205 Posts
    In the constant quest for best practices, I am noticing that my workspace file structure needs some optimization. I thought I had a good system but I am finding that it is not a good as it could be.

    Here is what I do:
    1) I have an active projects folder with all of the open projects I am working on (old projects are in a dir name archived).

    • Active Projects
    • Archived Projects

    2) each project gets a dir which is then sub divided into dirs:

    • documments: for contrtacts or invoices and any other document that is pertinent to the business of the project)
    • production: for image file, logos, text or whatever is pertinent to the creative process
    • development: this is where I keep all of the development stuff file including the site files
    • backups: for database backups as well as any other development backups
    3) I then create a virtual host for the project (if needed) using MAMP Pro making the site-files dir (sub of the development dir) the root for the project: http://myproject.loc:8888/

    This works well in general, and is easy to backup (I use S3 with JungleDisk) but breaks down in some situations. I was wondering if there is a better setup.

    Do you color code files? What criteria do you apply? I have tried color coding but end up getting the criteria all messed up and end up using the colors to identify the files inthe crowd but not to say anything about the files themselves (status, etc).
      [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

      Something is happening here, but you don't know what it is.
      Do you, Mr. Jones? - [bob dylan]
      • 33372
      • 1,611 Posts
      Funny. I do something very similar. At least in terms of directory structure...

      Active
      - some active project name
      - backups
      - invoices
      - website
      - working
      - another active project name
      ...
      Inactive
      - etc.

      For those rare projects that aren’t websites I have slightly different structures. I don’t use LAMP during development anymore because I found that the migration process was more trouble than it was worth. I just develop on the final host server and password-protect work in progress.

      I also use Jungle Disk/Amazon S3 for offsite backups, and boy do I sleep better at night knowing it’s all up there (plus local backups, and all of our work files are on a shared NAS). I use KeePassX for all password and other sensitive data, and Bamboo Invoice for managing invoices (it’s got some quirks, but it basically works for my needs). I have a private SMF installation with (searchable and reverse date-indexed) notes for each project, and my Google Apps labels use the same project names as my local files (e.g., Active/ProjectName, etc.).

      Some of the problems I’ve had with this structure are:

      • Some projects are ongoing and/or have multiple phases, and it’s easy for documents and files to get jumbled up (especially in the working directory)
      • I’ll often want to clean up a directory after it’s been backed up to JD/S3, which is a pain because then I need to do the same thing in both places in order not to have to back up all those files again
      • I’d really like to try out a proper project management/support ticket/wiki system, but so far the learning curve (especially for our clients) and/or particular annoyances of the software that I’ve experimented with has almost made me give up on this idea
        "Things are not what they appear to be; nor are they otherwise." - Buddha

        "Well, gee, Buddha - that wasn't very helpful..." - ZAP

        Useful MODx links: documentation | wiki | forum guidelines | bugs & requests | info you should include with your post | commercial support options
        • 36527
        • 120 Posts
        Hey Zap,

        One tool I would recommend after many months of trying all that is out there is ActiveCollab.

        With a bit of time and effort - the app is almost as configurable as Modx - free to do what you want with it and make it work for your style.

        We have a small team of web, marketing and print guys in house - it is saving a couple of hours a day with RFP’s, client feedback and sign off etc. across the board.

        Yes it costs, but get it now and you get the free upgrade to v2 next month - paid for itself already. And clients love it...
          • 20413
          • 2,877 Posts
          My first MODx project: http://www.qnode.se/ (swe - google translatation: http://hex.io/f73 )
          is a small company offering Live-backup service and online storage that is automatically syncing your
          folder and files to be the most updated. The software runs smooth in the background and will keep the most
          updated file on the server. Its also allowing web access.

          This thing works as a dream. So Im happy I got to work with these guys. They should get international... 
          //and let me clean up that site code tongue 
            @hawproductions | http://mrhaw.com/

            Infograph: MODX Advanced Install in 7 steps:
            http://forums.modx.com/thread/96954/infograph-modx-advanced-install-in-7-steps

            Recap: Portland, OR (PDX) MODX CMS Meetup, Oct 6, 2015. US Bancorp Tower
            http://mrhaw.com/modx_portland_oregon_pdx_modx_cms_meetup_oct_2015_us_bancorp_tower
            • 18374
            • 69 Posts
            Mine is pretty similar:


            • /project-name
              [list]
              [li]/db (database backups)
            • /docs (invoices, specs and other meta information)
            • /site (actual site files - for example a MODx install)
            • /source (comps, content, etc.)
            • /templates (raw XHTML/CSS/JS to be integrated with the CMS)
            • /tests (unit tests in Selenium)
            [/li]
            [/list]

            Like yourself, I like to set up a development environment via MAMP Pro (use /project-name/site/ as root) and then a staging environment on my webserver that the client has access to. If it’s an application, I’ll normally use Capistrano to push from dev->stage->production instead of finagling around with FTP, although this is usually overkill for simple CMS-driven sites.

            As for color coding... don’t use it. Tried, got confused cause I was so inconsistent, gave up. smiley
              • 7231
              • 4,205 Posts
              I’ll normally use Capistrano to push from dev->stage->production instead of finagling around with FTP
              I thought Capistrano was a ROR thing? I will need to look into that. Thanks for the tip wink
                [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

                Something is happening here, but you don't know what it is.
                Do you, Mr. Jones? - [bob dylan]
                • 18374
                • 69 Posts
                Capistrano lets you execute ANY command you would normally execute from a shell. It was developed specifically for RoR, yes, but you can use it for anything! We’ll typically use it to grab the latest files from SVN and upload them to a staging environment. And push to production from there. Super easy to go back and re-stage a previous SVN revision if needed as well.