Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tmtocb/palabra-translategame-tdd

Rails 6 app where you can learn words and translations using external Language API, full test suite with RSpec, devise for authentication, pundit for authorization, Travis-CI, Heroku, Brakeman, Bundler-Audit, Pry in development/production.
https://github.com/tmtocb/palabra-translategame-tdd

bootstrap devise external-apis heroku-deployment postgresql rails-api rails6 rspec ruby-on-rails tdd travis-ci travis-ci-github

Last synced: 15 days ago
JSON representation

Rails 6 app where you can learn words and translations using external Language API, full test suite with RSpec, devise for authentication, pundit for authorization, Travis-CI, Heroku, Brakeman, Bundler-Audit, Pry in development/production.

Awesome Lists containing this project

README

        

## Palabra app - learn words and translation in different languages.

---

![](palabragame.png)
![](palabranew.png)
![](palabralist.png)

---

## Stack

* Ruby as language.
* Rails as framework.
* Postgres as database.
* Heroku for continuous-deployment in production (with always forced SSL connection)
* TravisCI for continuous-integration
* Bootstrap as CSS framework.
* SassHTML5CSS3 for Front-End styling.
* JavaScriptjQuery for scripts, nested forms and styling.
* GitGitHub for version control, in this project I have learned branching, pull requests and merging.
* Webpack for styling and scripts as I moved from Rails asset pipeline.
* **RSpec, FactoryBot, Shoulda-Matchers, Guard-RSpec** as test suite stack.
* gem **language_list** for external Language API list used in database.
* gem **devise** for authentication.
* gem **pundit** for authorization.
* gem **rubocop** for static-code-analysis
* gem **brakeman** for security vulnerability checks.
* gem **bundler-audit** for Bundler security verification
* gem **kaminari** for pagination.
* gem **bullet** in development for killing n+1 queries.
* gem **pry** for debugging.
* Rails debbuger in development.
* gem **faker** for seed sample data.
* gem **nested_forms** for nested Javascript forms.
* gem **simple_form** for clean forms.
* Google Fonts
* **Font-Awesome** as an icon toolkit.
* responsive layout meta tag for mobiles.
* HTML5 shim for pre-9 Internet Explorer browsers.

---

## Configuration & dependencies

### System dependencies

`Ruby: 2.7.2p137`

`Rails: 6.0.3.4`

`database: postgresql`

### Configuration

`git clone https://github.com/tmtocb/palabra-translator-TDD`

`bundle install`

### Database

`rails db:drop db:create db:migrate`

`rails db:seed` to seed database with faker data

### Run the app

`rails s`

`foreman start`

### Development tools

`binding.pry` to debug

`rubocop` for static-code-analysis

`brakeman` for security vulnerability checks.

`bundler-audit` for Bundler security verification

via browser with Rails debugger

### Run tests

`rspec` to run full test suite

`guard` for autotests live in development