Project organization - bblockwood/lab GitHub Wiki
Each project is organized around a GitHub repository, which is used for Task Management and for storing all programming code related to a project. We will also use Dropbox for storing data files, archives, the .zipped replication package, and other large files which do not require version control.
-
GITHUB/(Throughout, "GITHUB" is a stand-in for the name of the actual GitHub repo, such as "bblockwood/parking" or "bblockwood/lotteries".)-
admin/- Contains grant and funding information, this collaboration guide and other reference material.
-
build/-
code/-
SetGlobals.do- This file automatically sets filepaths so that scripts will run properly on each user’s system. Manually running this prior to any other script should ensure that each collaborator can run any analysis file.
- This folder also contains scripts which clean and format raw data.
-
-
-
analysis/- This folder contains analysis scripts used in the final paper.
code/-
output/tables/figures/numbersintext/
-
issues/- This folder contains scripts and results used to explore particular github issues, when those issues require their own analysis. Each subfolder should be named with the number of its associated issue.
-
15/for examplecode/-
output/tables/figures/
-
notes/- Contains notes from meetings and other reference material. I prefer to use Google Docs for these, to allow remote contemporaneous editing. In that case, a web bookmarklet can be placed in the folder.
-
README.md- Contains details for coauthors and RAs about project organization, data sources, etc. As project matures to submission/replication package stage, should be updated to something like the AEA's Replication README template.
-
references/- Contains papers or other documentation for shared reference, please use the naming convention “Authors Date AbbreviatedJournal "Short Title".pdf” such as “Saez 2001 RES Using Elasticities to Derive Optimal Income Tax Rates.pdf”.
-
writeup/-
code/- Contains .lyx or .tex files for paper and slide decks.
-
output/- Save .pdf output from paper or slide decks here.
-
-
Dropbox is used for sharing notes, records, background literature, and other shared reference material which doesn’t require version control. Directory structure is:
-
DROPBOX/(Throughout, "DROPBOX" is a stand-in for the name of the actual Dropbox shared folder, such as "Parking" or "Lotteries", which may have a different path or folder name on different systems.)-
data/-
input/- Contains all raw data, including a file README.txt which lists all data and sources for replicability.
-
intermediate/- *Contains data that has been cleaned and formatted or otherwise modified. These do not require version tracking, because they can be reproduced at any time using the scripts saved in
GITHUB/build/.
- *Contains data that has been cleaned and formatted or otherwise modified. These do not require version tracking, because they can be reproduced at any time using the scripts saved in
-
-
archive/- Contains archived project information if relevant.
-
replication.zip- Complete replication file for the project, when relevant.
-
Projects often spawn a great deal of documentation (meeting notes, draft surveys, lit reviews, etc.). We will use Google Docs for such documentation. Please use this template for gdoc notes.
Google docs should be saved as web locations. On a PC, you can just drag the web address into a folder and it auto-generates a .url bookmark link while Mac users can also just drag the web address into a folder, but it will auto-generate a .webloc bookmark link. PCs cannot open .webloc files, so if you are on a Mac and and working with PC users, instead use the cross-platform filetype .url.
A shell script to convert .webloc -> .url is available here. Drop the folder in Applications, then in Terminal, cd to the desired high-level directory, then execute webloc2url.sh and all the .webloc files contained in that directory (or subdirectories) will be duplicated to .url files. For example:
cd "/Users/username/Dropbox/..."
/Applications/webloc2url-master/webloc2url.sh