Git Product home page Git Product logo

qna's Introduction

Questions & Answers

A class project at online school for rails developers Thinknetica.com

Professional grade web application


Main features:

  • A guest can read all the questions and answers as well as the comments to both
  • A guest can also search through the entire application (full-text search)
  • A guest can register himself by completing the form or by using his Twitter or Facebook account
  • Registered user can ask a question, give an answer or leave a comment to any of both
  • User can also attach a file to his question or answer
  • There are options for a user for editing or deleting his question or answer
  • User can also vote up or down for a question or specific answer
  • Author of a question can check an answer as the best suitable answer for him
  • When there is a new answer for a question, the author receives an email about this event
  • Every user can receive a 24h digest which consists of a list of new questions
  • Every user immediately sees a new question in the list of questions when it is created by someone else
  • Also if you are at a question page and someone else has left a comment here you will see it immediately
  • A third party application can use API for work with questions/answers

Technical details

  • Ruby 2.3.7 and Rails 5
  • PostgreSQL 9.3
  • Sphinx 2.0.4 as a search engine
  • Doorkeeper: OAuth provider, REST API
  • SendGrid: transaction email provider
  • ActiveJob/Sidekiq: Delayed mail delivery
  • Redis: cache store and queue store for Sidekiq
  • PrivatePub/Faye: Websockets messaging (new question or new comment)
  • Authentication: Devise 4.2 + OAuth (Twitter, Facebook)
  • Authorization: CanCanCan
  • There is AJAX functionality for better responsiveness (voting, editing, etc.)
  • Made with BDD/TDD approach (RSpec)

Deploy

  • This app is deployed at http://qna.kudashkin.pro
  • Production server is powered by Nginx + Unicorn on Ubuntu LTS 14 Server
  • Whenever: crontab tasks
  • Dotenv: ENV variables
  • Capistrano for deploying

Future plans

I'm planning to change PrivatePub to ActionCable in a couple of weeks.
Also I'm willing to try Pundit for Authorization.

qna's People

Contributors

aleksandrkudashkin avatar renovate[bot] avatar

Watchers

 avatar  avatar

qna's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Update dependency bcrypt to v3.1.19
  • Update dependency capistrano-rails to v1.6.3
  • Update dependency capistrano-sidekiq to v2.3.1
  • Update dependency database_cleaner to v2.0.2
  • Update dependency jquery-rails to v4.5.1
  • Update dependency launchy to v2.5.2
  • Update dependency mysql2 to v0.5.5
  • Update dependency omniauth to v2.1.1
  • Update dependency ruby to v2.7.8
  • Update dependency sidekiq to v6.5.9
  • Update dependency thin to v1.8.2
  • Update dependency cancancan to v3.5.0
  • Update dependency capybara to v3.39.2
  • Update dependency devise to v4.9.2
  • Update dependency faker to v2.23.0
  • Update dependency oj to v3.16.0
  • Update dependency pg to v1.5.3
  • Update dependency rails to v5.2.8.1
  • Update dependency responders to v3.1.0
  • Update dependency sass-rails to v5.1.0
  • Update dependency spring to v4.1.1
  • Update dependency thinking-sphinx to v5.5.1
  • Update dependency carrierwave to v3
  • Update dependency faker to v3
  • Update dependency rspec-rails to v6
  • Update dependency shoulda-matchers to v5
  • Update dependency sidekiq to v7
  • Update dependency slim to v5
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

bundler
Gemfile
  • ruby 2.7.6
  • rails '~> 5.0'
  • pg undefined
  • sass-rails '~> 5.0'
  • uglifier '>= 1.3.0'
  • coffee-rails '~> 4.1.0'
  • slim undefined
  • twitter-bootstrap-rails undefined
  • jquery-rails undefined
  • turbolinks undefined
  • jquery-turbolinks undefined
  • jbuilder '~> 2.0'
  • sdoc '~> 0.4.0'
  • bcrypt '~> 3.1.7'
  • faker undefined
  • carrierwave undefined
  • remotipart undefined
  • cocoon undefined
  • private_pub undefined
  • thin undefined
  • responders undefined
  • omniauth undefined
  • omniauth-facebook undefined
  • omniauth-twitter undefined
  • devise undefined
  • cancancan undefined
  • doorkeeper undefined
  • active_model_serializers undefined
  • oj undefined
  • oj_mimic_json undefined
  • sidekiq undefined
  • sinatra undefined
  • whenever undefined
  • mysql2 undefined
  • thinking-sphinx undefined
  • dotenv undefined
  • dotenv-rails undefined
  • therubyracer undefined
  • unicorn undefined
  • redis-rails undefined
  • spring undefined
  • spring-commands-rspec undefined
  • web-console '~> 2.0'
  • letter_opener undefined
  • capistrano undefined
  • capistrano-bundler undefined
  • capistrano-rails undefined
  • capistrano-rvm undefined
  • capistrano-sidekiq undefined
  • capistrano3-unicorn undefined
  • rspec-rails undefined
  • factory_girl_rails undefined
  • json_spec undefined
  • capybara-email undefined
  • fuubar undefined
  • capybara undefined
  • launchy undefined
  • poltergeist undefined
  • database_cleaner undefined
  • shoulda-matchers undefined
  • rails-controller-testing undefined
ruby-version
.ruby-version

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.