These server templates are here to get you started fast with some best-practices baked in.
Install homebrew for easily installing lots of things. Then:
brew install python
Install scoop for easily installing lots of things. Then:
scoop install python
Install python from your distribution's package manager.
# install cookiecutter (if not already present)
pip install cookiecutter
# confirm cookiecutter is available
cookiecutter
cookiecutter gh:maayanlab/server-templates --directory [some-template-directory-name]
Answer all the prompts and a directory with your application ready to go will be generated. Open the generated folder and read the README.md
for more information on moving forward with the template.
Each template is labeled by the technologies it uses. More information can be found by clicking the template directory and reviewing the README, and additional information will be in the README you get once your project is created. Some of the technologies used are described briefly below:
flask
: A light-weight, web application framework for tiny python-driven applicationsjavascript
: Javascript server (nodejs) / client (browser)nginx
: A high-performance yet light-weight web server and load balancerpython
: The python 3 programming language; version 2 is deprecatedreact
: A javascript frontend framework for HTML in Javascripttypescript
: A type-safe variant of javascript with improved developer experiencenextjs
: A full-stack javascript framework for joint frontend-backend development usingreact
Developing a cookiecutter (from cookiecutter docs)
This is general how-it's-made information. You don't need to follow any of these steps to develop a project.
This is the directory structure for a simple cookiecutter::
cookiecutter-something/
├── {{ cookiecutter.project_name }}/ <--------- Project template
│ └── ...
├── README.md <--------- A helpful README
│
│
└── cookiecutter.json <--------- Prompts & default values
You must have:
- A
cookiecutter.json
file. - A
{{ cookiecutter.project_name }}/
directory, whereproject_name
is defined in yourcookiecutter.json
.
Beyond that, you can have whatever files/directories you want.
This is what will be generated locally, in your current directory:
mysomething/ <---------- Value corresponding to what you enter at the
│ project_name prompt
│
└── ... <-------- Files corresponding to those in your
cookiecutter's `{{ cookiecutter.project_name }}/` dir