Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cribbles/tiktak
anonymous forum engine for Rails 4
https://github.com/cribbles/tiktak
Last synced: 1 day ago
JSON representation
anonymous forum engine for Rails 4
- Host: GitHub
- URL: https://github.com/cribbles/tiktak
- Owner: cribbles
- License: mit
- Created: 2015-05-22T14:55:03.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-02T21:30:35.000Z (about 9 years ago)
- Last Synced: 2023-05-19T07:22:05.390Z (over 1 year ago)
- Language: Ruby
- Homepage: https://acb-api.herokuapp.com/
- Size: 666 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TikTak
[Live](http://acb-api.herokuapp.com/).
## Summary
TikTak provides a light-weight, Yik Yak-like anonymous forum system with
BBS-style assets.## Languages:
- Ruby
- Javascript
- HTML/CSS## Frameworks:
- Rails 4
- SASS## Libraries and Technologies:
- jQuery
- will_paginate
- Rack::Attack
- SettingsLogic
- [Faker::YikYak](https://github.com/cribbles/faker-yikyak)
- reCAPTCHA## Test Suite
- Rspec
- FactoryGirl
- Capybara## Features
- Secure, hand-rolled Rails user auth
- E-mail authentication
- Password resets
- Private messaging
- Post quoting
- Hellbanning
- IP whitelisting / blacklisting / caching
- Post reporting
- A straight-forward moderation system## Deploying
Site-wide globals, e.g. the name of your campus or institution, are stored in
[`config/settings.yml`](./config/settings.yml) and accessed through the
Settings
model.TikTak uses user mailers (for sign-in / sign-up / lost password) and reCAPTCHA
(for spam control). You'll need to get these set up for production.I deployed mailers with Heroku using Sendgrid. If you configuration is
different, you'll need to change your settings in
`config/environments/production.rb`.## Notes
### Private Messaging
TikTak is fully anonymous, so private messaging works differently than on most
social platforms.Anyone who's signed in has the ability to make themselves available for contact
by other registered users. When you send someone a private message, you can
offer to exchange e-mails through the application's handshake system. If they
accept, the e-mails for both sender and recipient will be revealed to each
other.In production, you'll definitely want to provide an e-mail regex specific to
your campus / institution / organization in
[`config/settings.yml`](./config/settings.yml). This helps to ensure integrity
among contactees. The principle behind exchanging e-mails is that only
individuals who have authenticated through a 'my-cool-school.edu' account
should
be available for contact. (Of course, this says nothing about who _in
particular_ a user might be getting in contact with.)### Hellbanning
TikTak provides an implementation of
[hellbanning](https://en.wikipedia.org/wiki/Stealth_banning) (also known as
shadowbanning on some sites).The conventional practice for hellbanning is to make a registered user's posts
only available to themselves. Because TikTak is anonymous and allows anyone to
post - with or without an account - this won't do. Instead, hellbanning is done
by IP address. A user posting from a hellbanned IP address can view all posts
made by themselves and other hellbanned users, but nobody else can see their
posts.Hellbanning is tightly coupled to the topic index and show views, to the point
of paginating these views separately for hellbanned and non-hellbanned users.
This way, hellbanned users can appear to be bumping their own and others'
threads, but replying to a thread from a hellbanned IP address won't bump it
for
the rest of the site.### Seed Data
I wrote a small gem to produce seed data:
[Faker::YikYak](https://github.com/cribbles/faker-yikyak). This makes Danny
Glunz's [YikYakov](https://github.com/dglunz/yikyakov) available in a slightly
more modular form under the [Faker](https://github.com/stympy/faker) namespace
(a la Faker::Hacker).Calling `Faker::YikYak.words(n)` will produce a Markov chain of length _n_
words, generated from YikYak sample data. See the [Heroku live
site](http://acb-api.herokuapp.com) for an example of what this looks like.## License
TikTak is released under the [MIT License](/LICENSE).
---
Developed by [Chris Sloop](http://chrissloop.com/)