Skip to content

Latest commit

 

History

History
109 lines (68 loc) · 4.15 KB

README.md

File metadata and controls

109 lines (68 loc) · 4.15 KB

Funky Starter

Travis Build Status

Funky Starter is an empty project with basic configuration. It has been developed to create quickly new Rails applications on top of it.

What's in it?

This is a sample Rails application. Here's what is installed:

Requirements

  • Git
  • Ruby 2.4.x
  • Bundler 1.15.x

Usage

$ git clone https://github.com/rhannequin/funky-starter
$ cd funky-starter
$ bundle install
$ bundle exec rails fork[/home/xxx/my-new-project]

Where /home/xxx/my-new-project is where you want to create your project.

Names like my-new-project will create a module like MyNewProject.

Warning: if you are using ZSH, you have to use another syntax:

$ bundle exec rails fork\[/home/xxx/my-new-project\] or

$ noglob bundle exec rails fork[/home/xxx/my-new-project].

Testing

$ RACK_ENV=test bundle exec rails db:create db:migrate
$ bundle exec rspec

Features

Environment variables

All environment variables are defined in application.yml and used by the Figaro gem. Some of them are required by the application to be started and are defined in figaro.rb

User model

UUID

Users are not using regular integer ids, but UUID generated by PostgreSQL's uuid_generate_v4(). This is why PG is required on this project.

#name

Each user has a required #name attribute which is unique and leads to create a friendly_id slug.

Devise

Password pepper

Devise is configured to use a pepper hash to generate hashed passwords.

Password change

Devise will send an email to user when they change their password.

Lockable module

Devise's Lockable module is enabled. It is configured lock user's account and send unlock instructions by email after 10 failed sign in.

Views

Views are generated from Haml files and not ERB.

I18n

Everything (almost) is supported in English and French.

Rack::Attack

Rack middleware for blocking & throttling abusive requests. Use the default configuration.