Silmarilli
The Noldor also it was who first achieved the making of gems;
and the fairest of gems were the Silmarils, and they are lost.
— J.R.R. Tolkien, The Silmarillion
This is a collection of the most brilliant gems out there,
forged into a powerful building tool.
Warning: still work in progress and not ready for usage yet!
The gems
Silmarilli is packaged as a Yeoman generator –
generator-silmarilli. It scaffolds
your application consisting of a Django
REST API server connected to a PostgreSQL database and an
AngularJS web app.
The following gems are included in Silmarilli:
How is this possible? Through the magic of
composability,
copying files
based on template rendering
and glob expressions.
A good example of composability is
generator-generator
being composed of
generator-node.
Getting Started
To begin, your computer first needs node.js.
Once you have that, we need Yeoman pre-installed. Yeoman lives in the
npm package repository. You only have to ask for him once,
then he packs up and moves into your hard drive.
npm install -g yo
Then, we need the Silmarilli generator, i.e. plug-in. You install
generator-silmarilli from
npm.
npm install -g generator-silmarilli
Finally, for every new project you would initiate the generator
in an empty folder.
mkdir magic-project
cd magic-project
yo silmarilli
You will be prompted for some questions. You can optionally pass in the project
name as an argument (you'll be asked for it otherwise).
yo silmarilli magic-project
If you want to skip generating the Angular code, pass the --skip-angular
flag.
yo silmarilli awesome-project --skip-angular
See all of the available options by running the help flag.
yo silmarilli --help
Development
Locally
If you didn't pass --skip-install
, Yeoman will run npm install
and bower install
for you. After this, start the development environment using
gulp serve
Using Docker
Install Docker Compose.
When necessary, run the migrations:
docker-compose run web ./manage.py migrate
afterwards, you can get the development server up and running by simply running:
docker-compose up
Now, open your browser at http://localhost:8000 or check the ip address with
boot2docker ip
if you're on OS X.
License
Original code GPLv3, for the included components see LICENSE.md.
TODO
- fill out django-compose.yml
- use something more simliar to Jinja to render {% if %} tags in Cookiecutter
-> probably cookiecutter directly to handle {% raw %} tags
- Cookiecutter-django as subtree or submodule (probably submodule to KIS...)
- set other cookiecutter-django settings as options (author_name etc.)
- properly prompt the subgenerator
http://stackoverflow.com/questions/28520937/
- add local cookiecutterrc support to cookiecutter/cookiecutter/config.py