Evil Board engine. Unfinished web forum project developed circa 2012
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
db
doc
lib
log
public
script
test
vendor
.gitignore
COPYING
Capfile
Gemfile
Gemfile.lock
INSTALL.md
README
Rakefile
config.ru

README

Copyright 2012, A Group of Enthusiasts(tm).

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.


Report bugs and check for roadmap and new versions at

http://dev.coldattic.info/projects/evil


== Dependencies

(incomplete list)
libbz-devel
glibc-devel
mysql-devel
ruby1.9
ruby-devel
curl
cron daemon (production)
memcached (production)

== How to launch the application

Read INSTALL.md

== Important pieces of code

The code that collects forum tree information resides in app/models/threads.rb.  The model class contains a fast, raw-SQL way of fetching posts from a thread, and a faster way of fetching a list of threads for the index.

If you're adding a new field to posts (for optimization purposes, for instance), be sure to add it to raw SQL in faster_posts model (see sql_posts method).  See 239aa4eaf commit for an example of adding new fields.

The layout of the posts tree is in app/helpers/posts_helper.rb.  It contains raw HTML prints.  The reason why is eplained in my blog post http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/75. WARNING!  When you change something in the post_helper, and want to see the changes but nothing happens after you reload a page, either turn off the cache completely (uncomment the relevant lines in config/environments/development.rb), or erase the cache folder (rm -rf tmp/cache/).  I turned off caching in development by default.

"Wide caches" for tracking post clicks, activity, and access to external message sources are initialized in app/controllers/application_controller.rb.  The implementation of the wide cache itself is located at lib/activity_tracker.rb.  More on wide caches you may find in my blog post: http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/77

CSS files are in app/assets/stylesheets/.   Pay attention to posts.css.scss and application.css.scss.  Javascript is in app/assets/javascripts/.