DEV Community

Nick Janetakis
Nick Janetakis

Posted on

How do you organize source code on your computer?

I'd be curious to see how everyone organizes their source code.

Let's see some screenshots or terminal dumps of your set up.

Here's what I've been doing for the last 5 or 6 years:

Source code layout

I like to organize my code by what it's used for rather than by language.

I've been a freelance developer for about 20 years and inside of those folders are hundreds of projects ranging from Visual Basic 6 from the mid 1990s to more recent projects written in Flask, Rails and Phoenix.

Oldest comments (32)

Collapse
 
mte90 profile image
Daniele Scasciafratte

I have a Prog folder where there are all my repos localy that are mainly scripts or stuff that later I move on /var/www where I have the webserver or my vagrant machines.
Compared to you I am a bit disorganized.

For contracts and courses I use folders on external drives just to be sure that they are backup with my Nextcloud instance.

Collapse
 
nickjj profile image
Nick Janetakis

Keep in mind, I didn't start out like this.

The legacy folder alone as of today has 102 projects. That directory structure was slowly built up over many years.

Collapse
 
mte90 profile image
Daniele Scasciafratte

Say in that way seems very scary!

Collapse
 
dance2die profile image
Sung M. Kim • Edited

Below is how my sources are organized (for personal codes)

  1. public sources - GitHub
  2. private source - GitLab
  3. Playground - throwaway

sources
(Please ignore the poo.💩 file.)


GitHub has another top level directories, "Docker", "Aspnet", etc by technology.

I don't differentiate much by languages though.
I've been using above set up last 3 years and been working great.

throwaway is where all my one-offs or test/useless code are located.

I have a different structure for work as I have to follow the conventions at work.

Collapse
 
cjbrooks12 profile image
Casey Brooks • Edited

I had no idea you could use emojis in filenames.

var mind = "blown";

Collapse
 
dance2die profile image
Sung M. Kim

You can also search by emojis 😎.
search by emoji

Thread Thread
 
guneyozsan profile image
Guney Ozsan

This looks pretty crazy. Just learnt as well.

Thread Thread
 
rogues_gallery profile image
🃏

oh man this emoji discovery is pretty friggin awesome, such wow

Collapse
 
eljayadobe profile image
Eljay-Adobe

Apparently POO is an OOP language.

Collapse
 
itsasine profile image
ItsASine (Kayla)

~/dev is where I dump everything since that's an easy path to cd to.

I should probably care more than this, but it works for now.

Collapse
 
jhochwald profile image
Joerg Hochwald 🇪🇺

Exactly what I do. I let GIT handle everything for me.
The only exception: In dev is a directory called Clones, and as the name tells: I Dump all the cloned public repositories in here.

Collapse
 
antonfrattaroli profile image
Anton Frattaroli

Due to the limitation of windows path length (260) and an insane vendor, my source is at C:[source_control_project]

Collapse
 
djangotricks profile image
Aidas Bendoraitis

For coding projects I have to directories:

  • ~/Projects/
  • ~/Experiments/

Most of the projects in both directories are Python projects and under version control, so am not grouping them more granularly.

Collapse
 
sudiukil profile image
Quentin Sonrel

Most of my projects are in a ~/Projects dir. I have a bunch of shell scripts in an another dir that does not make much sense (~/Other/Scripts)... I should move this dir but it has been there for years so... it's tradition now I guess 😀

I try to keep my ~/Projects dir tidy by removing any project that I'm not actively working on, since most of them are either on GitHub or my Gitea instance anyway.

Collapse
 
xiris_ profile image
Christopher Silva

Interesting to see diff. structures :D

In my case, a high-level structure contains each company and own projects under "personal".
And inside that, each project folder.

EG:
~/Projects/personal
~/Projects/companya
~/Projects/companyb
~/Projects/companyb/projectabc

Inside each project folder, also some structure, but can vary depends on the technology used:
EG:
~/Projects/companyb/projectabc/_DOCS - Project documentation, dumps, csv files, whatever needed.
~/Projects/companyb/projectabc/www - root

Collapse
 
bgadrian profile image
Adrian B.G. • Edited

I've had many organizing rules among the years, now I'm back at folders per main project, because I'm learning and switching a lot.

img

I removed all my old projects (windows and php), and I started a clean slate, on a new laptop.

Collapse
 
pkristiancz profile image
Patrik Kristian

I have everything under one directory and then all arraged by client/project/

Collapse
 
tadaboody profile image
Tomer

All my projects are on ~/ except for future pull requests on ~/Forks.

Collapse
 
squgeim profile image
Shreya Dahal • Edited
  • Day job:
    ~/Projects/CompanyName/ProjectName

  • Personal serious side projects or regular open-source contribution:
    ~/Projects/Personal/ProjectName

  • Practice non-serious side projects:
    ~/Projects/Practice/TechnologyName/ProjectName

  • Some open-source apps/scripts that I use and tinker with or have to self-host:
    ~/Projects/Applications/ProjectName

  • One-off scripts and POCs:
    ~/Projects/tmp

Collapse
 
a544jh profile image
Axel Wikström

I just have my repos in ~/git.

Collapse
 
drewknab profile image
Drew Knab

~/code/fun/[project]
~/code/work/[client]/[project]

Collapse
 
mraubreycodes profile image
Aubrey Fletcher

Because we use a project management software at work. I break it down by the following:

  • What department is the user? (I work in a college).
  • What is the Project Management Number?

I started using Git for changes, but I should be getting back to using it more regularly than I have.

Collapse
 
ctrleffive profile image
Chandu J S • Edited

I have a Developer folder in my home directory.
I put all my code into the Developer folder. No other folders have project codes.
Folder name of the project will be the same as git repo name (only lowercase and dashes. no underscores).

I use GitHub for public sources and GitLab for private sources.

I have same structure for work