/evil

Evil Board engine. Unfinished web forum project developed circa 2012

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

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/.