All Projects → icyflame → cutouts

icyflame / cutouts

Licence: MIT license
Sign up, and start adding the articles that you have read and want to remember!

Programming Languages

ruby
36898 projects - #4 most used programming language
Haml
164 projects
HTML
75241 projects
SCSS
7915 projects
coffeescript
4710 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to cutouts

campaign-manager
The Camapign Management UI for RTB4Free, the open source bidder / DSP.
Stars: ✭ 24 (+84.62%)
Mutual labels:  ruby-on-rails
YouTube-MA
💾 YouTube video metadata archiver written in Golang
Stars: ✭ 17 (+30.77%)
Mutual labels:  archiver
talent scout
Model-backed searches in Rails
Stars: ✭ 23 (+76.92%)
Mutual labels:  ruby-on-rails
guardrails
guardrails.cs.virginia.edu
Stars: ✭ 18 (+38.46%)
Mutual labels:  ruby-on-rails
request store-sidekiq
Provides an easy integration between RequestStore and Sidekiq
Stars: ✭ 32 (+146.15%)
Mutual labels:  ruby-on-rails
cassandra-example-using-ruby
The purpose of this step-by-step tutorial is to provide a very simple example of configuring and using the Cassandra database engine with the Ruby Language.
Stars: ✭ 21 (+61.54%)
Mutual labels:  ruby-on-rails
graphql-ruby-sample
Sample application for demonstrating GraphQL Ruby on Rails integration
Stars: ✭ 16 (+23.08%)
Mutual labels:  ruby-on-rails
rails-app-best-practice
Rails app structure example
Stars: ✭ 37 (+184.62%)
Mutual labels:  ruby-on-rails
mapbox-gl-rails
A gem to provide Mapbox GL JS and it's ecosystem (plugins) for Rails applications 🚆
Stars: ✭ 32 (+146.15%)
Mutual labels:  ruby-on-rails
site
Cataloged, analyzed, manually-curated open-source Rails projects directory.
Stars: ✭ 34 (+161.54%)
Mutual labels:  ruby-on-rails
activerecord-setops
Union, Intersect, and Difference set operations for ActiveRecord (also, SQL's UnionAll).
Stars: ✭ 21 (+61.54%)
Mutual labels:  ruby-on-rails
nxt state machine
A simple but powerful state machine implementation.
Stars: ✭ 14 (+7.69%)
Mutual labels:  ruby-on-rails
tag columns
Fast & simple Rails ActiveRecord model tagging using PostgreSQL's Array datatype
Stars: ✭ 40 (+207.69%)
Mutual labels:  ruby-on-rails
shog
Simple colored logging for rails 4 and 5 apps
Stars: ✭ 69 (+430.77%)
Mutual labels:  ruby-on-rails
eight ball
Ruby gem for querying feature flags
Stars: ✭ 17 (+30.77%)
Mutual labels:  ruby-on-rails
stimulus reflex todomvc
An implementation of TodoMVC using Ruby on Rails, StimulusJS, and StimulusReflex
Stars: ✭ 50 (+284.62%)
Mutual labels:  ruby-on-rails
awesome-programming-tutorials
📚 Collect all awesome programming tutorials
Stars: ✭ 39 (+200%)
Mutual labels:  ruby-on-rails
activerecord-cockroachdb-adapter
CockroachDB adapter for ActiveRecord.
Stars: ✭ 90 (+592.31%)
Mutual labels:  ruby-on-rails
doom-emacs-on-rails
Emacs Configuration for who loves Ruby on Rails and also uses magic to code!
Stars: ✭ 73 (+461.54%)
Mutual labels:  ruby-on-rails
rails-mini-profiler
Performance profiling for Rails, made simple 🦔
Stars: ✭ 380 (+2823.08%)
Mutual labels:  ruby-on-rails

cutouts

Sign up, and start adding the articles that you have read and want to remember! Deployed here!

Build Status

You can find the Firefox companion add-on here

TOC

What?

  • Simple form with just two compulsary questions: Link and a Quote from the article that you want to remember
  • As simple as it can get. Nothing fancy. Vanilla bootstrap. Vanilla font awesome.
  • List public cutouts at profile page
  • Share a single cutout with friends and family by emailing it to them
  • Share a cutout on social media by copying it's permalink

Why?

The internet has a lot of good content, blog posts, articles, etc etc. I read a lot of stuff, and then could not find them again when I wanted to. Pocket is good for saving for later, Delicious and Pinterest are overkill for something as simple. Hence, this project!

Local Setup

Note: These steps were tested on a machine running Ubuntu 18.04 LTS.

  • Install rbenv
  • Install ruby version 2.7.0
  • Install bundler version 2.12.0
  • Run bundle install
  • [TEST] Run ./bin/rails --version
    • This ensures that you have the rails gem installed locally

Creating a local test user

  • Go to http://localhost:3000
  • Create a user using the Sign Up button
  • Now, you will be shown a prompt on the home page saying you must confirm your user by clicking the confirmation link in your email.
  • To do this process directly on the database, you can do:
    • Go into the rails console: zeus console
    • Get your user: User.all or User.first
    • Confirm your user: user.confirm
  • After confirming a user, you should be able to login to your account locally.

A log of the commands to run and their output:

irb(main):007:0> User.first
  User Load (0.5ms)  SELECT  "users".* FROM "users"  ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: 1, email: "[email protected]", username: "a1", created_at: "2019-09-14 04:29:01", updated_at: "2019-09-14 04:29:01">
irb(main):009:0> User.first.confirm
  User Load (0.5ms)  SELECT  "users".* FROM "users"  ORDER BY "users"."id" ASC LIMIT 1
   (0.2ms)  begin transaction
  SQL (0.7ms)  UPDATE "users" SET "confirmed_at" = ?, "updated_at" = ? WHERE "users"."id" = ?  [["confirmed_at", "2019-09-14 04:32:42.534172"], ["updated_at", "2019-09-14 04:32:42.542307"], ["id", 1]]
   (6.1ms)  commit transaction
=> true

You can use this process to confirm all locally created users.

Manual Test Plan

  • sign-up
    • confirm a new user using: User.find(...).confirm
  • login and logout
  • login, add a public cutout, check that it is accessible without login, logout
  • login, add an unlisted cutout, check that it is accessible without login, logout
  • login, add a private cutout, ensure that it isn't accessibly without login, logout
  • edit an cutout's visibility and check if the changes are reflected

API Documentation

Check the routes file for the latest available routes

All responses are JSON formatted.

GET /api/v1/feed

  • Returns the list of top 20 articles from the public feed
  • Public
  • Auth not required
  • Rate limited

GET /api/v1/feed/:username

  • Returns the top 20 public articles of the given user
  • Public
  • Auth not required
  • Rate limited

Release Notes

v1.1 - 2019-12-28

  • Switch to Ruby 2.7, Rails 6.0 and the latest version of several gems
  • Switch Heroku's build pack from cedar-14 to heroku-18

v1.0 - 2018-02-07

  • Add, update, delete cutouts

  • Tag cutouts and then search the cutouts in a particular tag

  • List all the cutouts you have stored in the past

  • Export all your cutouts to UTF8 encoded HTML or JSON

  • Share the permalink for an article that has the title of the article, the quote, the author and it's tags

    img

  • Email a Cutout to friends and family (maximum 5 at once)

    img

  • Add an alias while emailing so that recipients know the cutout is from you

  • Display tags as Bootstrap buttons

    img

  • A link to the archives of the page that has the Cutout

  • A companion Firefox add-on to make it easier to Cutout articles from Firefox

TODO

In descending order of priority

  • Create a good homepage that has a few words about why this project at all
  • User must be able to login with both username as well as email
    • Override devise? (Devise procedure here seems extremely long)
  • Fix the word limit on quote (50 words?)
  • Fix the sign-in and sign-up form UI
  • Fix the horrible UI to make it usable at the very least (copy medium, that interface is too good!)
  • A system to tag articles (single words)
  • A system to search for articles (single search bar, user search, tag search, author search, quote search)
  • Ability for users to export their articles into a Markdown file for local storage (A JSON file for import too?)
  • A rating system for self, no sharing as yet
  • Probably friendship and the ability to follow other users

forthebadge

Code inside this repo is licensed under MIT.

Copyright (c) 2015-2019 Siddharth Kannan All Rights Reserved.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].