Just-Ask
Just-Ask is a Stack Overflow clone that was made for educational purpose. Written in Ruby on Rails 5.
Installation
- Install and run PostgreSQL
- Install and run MySQL for Sphinx
- Install Sphinx for full text search
- Install and run Redis for ActionCable
git clone git@github.com:evmorov/just-ask.git
cd just-ask
bundle install
to install dependenciesbundle exec rspec
to run testsrails ts:rebuild
to rebuild Sphinxrails server
to run the the server
User stories
- Guest can sign up
- User can sign in and sign out
- User can sign in with Facebook or Twitter
- User can ask a question
- User can post an answer to a question
- User can comment a question and an answer
- User can edit or delete his question or answer
- User can vote for a question or an answer
- User can add files when creating an answer or asking a question
- User can delete his files
- Author of a question can mark any answer as the best answer
- User can subscribe to a question for new answers
- Users receive a daily digest with questions that were created in last 24 hours
- User can search a question, answer, comment or everywhere
Some of technologies used
Gems
- cancancan for authorization
- capistrano for deploying the code
- carrierwave and cacoon for adding files
- devise for authentification
- doorkeeper for OAuth2 providers
- omniauth for authentification with social networks
- responders for drying up controllers
- sidekiq for background processing
- skim for client-side templates
- slim as a template language
- thinking-spinx for connecting ActiveRecord with Sphinx
Rails built-in features
- Action Cable for real-time features
- Nested Forms and Polymorphic Associations
- REST API
Testing
The app has model, controller and acceptance (feature) specs.