-
Notifications
You must be signed in to change notification settings - Fork 0
N10_Final Week of FOSS
This week I have finished with my capstone project. I have a private github repository for my project. I have also created a website template for my project. Both of them could be improved throughput the project and upon completion and release of the project, I can get a DOI. A detailed description of my project is given in the following sections:
The main objective of this capstone project is to have an organized infrastructure for data and documentation. Hence, upon completion of my research project our team will be able to-
a. have a public github repository with complete documentation and python package
b. upon release of the repo, can have a unique DOI
c. have a website for the research project
I have used a cookiecutter template to automate the project creation process. [1] , [2] ,[3] The following is an example of such project structure.
.
├── AUTHORS.md
├── LICENSE
├── README.md
├── bin <- Your compiled model code can be stored here (not tracked by git)
├── config <- Configuration files, e.g., for doxygen or for your model if needed
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
├── docs <- Documentation, e.g., doxygen or scientific papers (not tracked by git)
├── notebooks <- Ipython or R notebooks
├── reports <- For a manuscript source, e.g., LaTeX, Markdown, etc., or any project reports
│ └── figures <- Figures for the manuscript or reports
└── src <- Source code for this project
├── data <- scripts and programs to process data
├── external <- Any external source code, e.g., pull other git projects, or external libraries
├── models <- Source code for your own model
├── tools <- Any helper scripts go here
└── visualization <- Scripts for visualisation of your results, e.g., matplotlib, ggplot2 related
I have used git and github for version control of my code and documentation. A snippet of my github repository is as following:
The documentation part was the most challenging part for me. Because at the beginning I did not know a. what to document? b. how much to document? and c. is the documentation even comprehensible?
So I started with documenting everything keeping in mind that someone with a basic understanding of structural dynamic analysis needs to understand how to use the code. I have documented:
- the project summary (i.e. background, goal, impact and what part of the project CAEM department is handling)
- the work which already done (i.e. summary and some results)
- ongoing study (i.e. background, objective, why and how to use the code, an example showing how to use the code)
- In code explanation (of all the variables, if any constraints)
- authors
- credits and citations
- funding agency
- the installation proces
The documentation will be updated as we go further with the research and feedback will be taken to ensure the comprehensibility of it.
Understanding and choosing the proper license is also very important. Currently the repository has two licenses:
a. GNU General Public License - this is for the whole project with no restriction to use any data
b. ISC license - this is for the python package because the original author of the repo (which I am modifying) mentioned this license should appear in all the copies
I have experimented with website creation. I have used a template of cplmakerlab .This will also be updated throughout the project duration. The published template of website can be found here