Since Twitter only provides a single page to keep all your bookmarked tweets and usually, it takes forever to find a specific tweet in the middle of it all, extreme measures had to be taken. So, i present to you...
Bookmarkd! With it, you can create as many folders as you want and add the tweets of your choice, by just pasting the tweet link :)
Create folders by adding a name and a description. After that, just start adding tweets to it! The bookmarks will always be displayed in the order they were last added.
By default, only you have access to your folders/bookmarked tweets. However, you can choose to leave the folder public.
If you chose to leave a folder public, you can copy its link and share it with the world! Other people seeing the folder will only have read privileges though, meaning only you can edit, add or delete bookmarks.
Default is the Light mode, but you can change the application mode at any time.
The folders in the index page, by default, are sorted by the date they were last updated at, but you can also sort them by Name or by the Number of Bookmarks.
Bookmarkd will tell you if the tweet you're trying to add already exists in the current folder.
You can also pin a folder. They will always appear first in the index page (and the sidebar!).
It is possible to create an Bookmarkd account or log in via Twitter.
- Ruby 2.5.5
- Rails 5.2.4
- ActiveRecord TypedStore to save user preferences.
- Cursor Paginate for cursor pagination on bookmarks display in a folder.
- Data Confirm Modal for custom and good looking data-confirmations via Bootstrap modals, avoiding the default behavior (Javascript's "Alert()").
- Devise for user authentication with the default modules.
- Stringex for custom URLs on Folder resources, using the parameterized name given by the user.
- Kaminari + Bootstrap 4 Kaminari Views for pagination.
- Omniauth Twitter combined with Devise's Omniauthable module to allow a user to sign in via Twitter.
- PG (Ruby interface to the PostgreSQL RDBMS) as the DB.
- Ransack to easily search folders in the 'Quick access' feature.
- Rest Client for easier integration with the oEmbed service, provided by Twitter API.
- Simple Form to write muss less code when it comes to forms, by using their custom wrappers (especifically Bootstrap).
- Webpacker + Yarn for package management (check packages).
- Bootstrap for design and responsiveness. Other Boostrap related packages were also used, such as:
- Bootstrap MaxLength for a better and readable indication to the user when a input has a specified max-length in it.
- Bootstrap Show Password to allow the user to show/hide the value in a input with the password type.
- EasyAutocomplete to show results as the user types, in the 'Quick access' feature.
- ImagesLoaded and Isotope:
- Display folders in a grid layout and show a smooth animation when performing a action on a folder (pin/unpin/delete).
- Sort folders by Name, Updated At and Number of Bookmarks.
- Filter (Search) a folder.
- Font Awesome for icons.
- JQuery and JQuery UI to simplify Javascript functions and an easier integration with Ajax.
- Tippy to display sum up guides in tooltip form, in order to help the user understand on how the application works.
- Toastr for alerts and/or notices.
Check package.json file
The project is available as open source under the terms of the MIT License. Copyright © 2020, Andréa Alencar.
- Fork it (http://github.com/andreaflether/bookmarkd/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
Please write tests for anything you change, add or fix.