No description, website, or topics provided.
Clone or download
Latest commit aba7795 Jan 6, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Use view_model Jan 6, 2019
db Use view_model Jan 6, 2019
public
spec
src Use view_model Jan 6, 2019
.amber.yml Initial commit Dec 23, 2018
.editorconfig Initial commit Dec 23, 2018
.gitignore Initial commit Dec 23, 2018
.travis.yml
Dockerfile
LICENSE Initial commit Dec 23, 2018
Makefile Use view_model Jan 6, 2019
README.md
docker-compose.yml Initial commit Dec 23, 2018
package-lock.json Initial commit Dec 23, 2018
package.json Initial commit Dec 23, 2018
sam.cr Initial commit Dec 23, 2018
shard.lock Use view_model Jan 6, 2019
shard.yml Use view_model Jan 6, 2019

README.md

Jennifer + Amber sample application

This is a project presenting efficient integration of Jennifer ORM and Amber web framework.

This project is inspired by Ruby on Rails Tutorial sample application.

Getting Started

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/amber_jennifer_sample_app.git
$ cd amber_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 just run:

$ amber watch

Dependencies

This is the lists of top-level application dependencies.

  • amber - 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;
  • citrine-i18n - Amber library for parsing translation local for I18n from request headers;
  • 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.

Development dependencies

  • email_opener - opens all sent emails in a browser tab;
  • garnet_spec - library to perform system and controller tests for a web framework.

Tests

TBA

TODO

  • implement "Remember me* using cookies
  • cover functionality with tests
  • 404 and 500 pages; "rescue from" functionality

Contributing

  1. Fork it ( https://github.com/imdrasil/test/fork )
  2. Create your feature branch ( git checkout -b my-new-feature )
  3. Commit your changes ( git commit -am 'Add some feature' )
  4. Push to the branch ( git push origin my-new-feature )
  5. Create a new Pull Request

Contributors

  • imdrasil Roman Kalnytskyi - creator, maintainer