Funky Starter is an empty project with basic configuration. It has been developed to create quickly new Rails applications on top of it.
This is a sample Rails application. Here's what is installed:
- Devise for authentication
- Omniauth for Twitter and Facebook authentication
- friendly_id slugging and permalink plugins
- Puma web server
- nginx application server configuration ready
- Rack::Attack middleware for blocking & throttling abusive requests
- Simple Form
- Sass for CSS
- CoffeeScript for JavaScript
- Turbolinks for faster frontend
- Bootstrap integration
- Devise custom view with Simple Form and Bootstrap
- RSpec for TDD
- Capybara for BDD
- factory_bot for factories
- i18n-tasks and improvements in translations
- simplecov for test coverage
- Rubocop for code review
- Figaro for git-ignored configuration file
- Capistrano for automatic deployment
- Brakeman for security vulnerabilities analysis
- Git
- Ruby 2.4.x
- Bundler 1.15.x
$ 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]
.
$ RACK_ENV=test bundle exec rails db:create db:migrate
$ bundle exec rspec
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
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.
Each user has a required #name
attribute which is unique and leads to create a friendly_id slug.
Devise is configured to use a pepper hash to generate hashed passwords.
Devise will send an email to user when they change their password.
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 are generated from Haml files and not ERB.
Everything (almost) is supported in English and French.
Rack middleware for blocking & throttling abusive requests. Use the default configuration.