This is a project presenting efficient integration of Jennifer ORM and Spider-Gazelle web framework.
This project is inspired by Ruby on Rails Tutorial sample application.
To get started with the app, clone the repo and then install the needed dependencies:
$ cd /path/to/repos
$ git clone git@github.com:imdrasil/spider-gazelle_jennifer_sample_app.git
$ cd spider-gazelle_jennifer_sample_app
$ shards
$ make setup
The last command copies ./config/database.yml.example
to ./config/database.yml
. All database parameters are located in ./config/database.yml
- complete them with your own values.
Next do the database setup.
$ make sam db:setup
This will automatically create development database, run all migrations and populate seeds.
To start a dev server run in a separate console tabs next commands:
$ make server
$ make webpack
Spider-Gazelle has own url builder (e.g. ClientsController.show(@client.id)
) but controllers and views have cross dependencies. To keep everything simple, all routes are hardcoded in RouterHelper
module.
This is the lists of top-level application dependencies.
- action-controller - ActionController library which is a core component of Spider-Gazelle web framework used to build this application;
- jennifer - ORM with DB migrating tool;
- sam - task/script manager (is used only for some commands - Amber provides own CLI);
- pg - PostgreSQL driver;
- carbon - email library;
- form_object - library provides Form Object pattern - allows to move all parameter parsing and data validating logic outside of models and controllers;
- pager - simple pagination library;
- view_model - View-Model layer - allows to encapsulate all view-related logic in a separate classes and brings HTML helper methods.
- slang - template language;
- http_method_emulator - library to emulate all HTTP methods by sending method name in
_method
query parameter inPOST
request; - flash_container - simple flash messages container.
- email_opener - opens all sent emails in a browser tab.
TBA
- implement "Remember me* using cookies
- cover functionality with tests
- 404 and 500 pages; "rescue from" functionality
- Fork it ( https://github.com/imdrasil/test/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- imdrasil Roman Kalnytskyi - creator, maintainer