Slashdot Mirror


Circulation Manager for an Academic Journal?

kokaubeam asks: "I've been working for several years in the publication office of a small academic journal and am currently in the process of reworking our circulation management system. For a variety of reasons, a web-based system seems to make the most sense, and although I'm not too concerned about just sitting down and hacking one out, I'd much rather contribute to an existing open source project (if one exists that would fit the bill) than reinvent the wheel. After several hours scouring the web, I've yet to come up with anything that seems even close. I need something to manage the names and (postal) addresses of subscribers, securely store payment information, and print slip sheets or mailing labels. Any language would be fine, but PHP would be ideal since I'd like to integrate the subscription system with manuscript and book review management systems I'm working on. Does Slashdot have any suggestions for projects that I may have overlooked?"

10 comments

  1. Seriously, look at Ruby on Rails by Vaevictis666 · · Score: 2, Interesting
    Just spend an hour or two looking at the now-ubiquitous recipe book demo, and see if a system like that could suit your site-building needs.

    Looking at what my co-worker just managed to pull out of his hat in a week or so (combination SOAP/XML-HTTP client with revision control on the data, for web-hosting-ish stuff) you may find the hardest part is finding excuses to not convert your other stuff over :P

    The most difficult thing I think you'd run into based on your spec is the label printing stuff, but if you found a web-based solution for it in PHP I'm sure the Ruby version should be comparable. Hell, as far as that goes the easiest way I can think of is just take a copy of Access, point it at your database, and use it to generate the right query and design your labels...

    1. Re:Seriously, look at Ruby on Rails by Anonymous Coward · · Score: 0

      Agreed, you can write the entire thing from scratch in RoR in the same time it takes to customize some open source PHP.

      PHP is such a pain in the ass, especially if you use objects.

      Example 1:

      I've been doing "$obj->foo" but now foo is derived from another field. I can't just use a variable any more. So either I start using getFoo/setFoo (which I have to write out by hand.. PHP has no metaprogramming abilities and classes are "closed") or I use the PHP5 "overload" feature (which has nothing to do with overloading in the traditional OO sense) to turn $obj->foo into a function call.. but that doesn't work because you can't use it in all the places you could use the plain variable (like, uhm, foreach loops.. ??). I don't know what what the PHP guys were smoking when they came up with this "design" but it sure wasn't rolled-up Smalltalk manuals! ;-)

      In Ruby this kind of refactoring is trivial.

      Example 2:

      I need to sort an array of objects by the $obj->bar field. In PHP this requires taking out a pair of pliers and pulling out a tooth. I mean, you have to write a sort function, and pass a string containing the name of the function to another function, which sorts *in place* (what if I don't want to sort in place???). Ugh, I thought I gave that up when I quit programming C. And it sure isn't OO, I have to name the function in a such a way that it won't clash with some other function in PHP's single, global namespace.

      In Ruby, it's easier than taking a shit:

      sorted_array = array.sort_by { |obj| obj.bar }

      And of course in Ruby all values are objects so you use the same syntax whether it's an integer, a Customer, or a continuation. What a relief from PHP.

      So, uhm, yeah if you like programming quickly and easily, use Ruby. And Rails really is amazing. You have to use it to believe it!

    2. Re:Seriously, look at Ruby on Rails by ceejayoz · · Score: 1

      Perhaps I'm missing something about #2... but...

      $sorted_array = array_multisort($array, [arguments]);

  2. OJS by suid77 · · Score: 2, Informative

    While its not strictly a circulation managment system, Open Journal Systems (http://www.pkp.ubc.ca/ojs/) is about the most robust, open source journal managment system around -- including some functionality for subscription based journals.

    Version 2 was released within the past few weeks, and may include some of the features you're looking for -- and if not, this is probably the most mature system of it's type if you're looking to add/contribute.

    I'm guessing that printing mailing labels from a web interface will be a difficult feature to find in an existing project.

  3. Labels by bobbozzo · · Score: 2, Informative

    FWIW, it's not hard to make PDFs from PHP, etc. (for the labels)

    If you have a PostScript 3 printer, you can send them directly to the printer without a driver.

    --
    Nothing to see here; Move along.
    1. Re:Labels by Anonymous Coward · · Score: 0

      http://www.ros.co.nz/pdf offers a simple PHP/PDF class that can be easily used to create a dynamically generated PDF to print mailing labels. I used it to create a script for a client who needed to be able to select customers (stored in a MySQL database, displayed with PHP) to print mailing labels for.

      The part that takes the most time is determining the exact format needed for the mailing labels, however, this is generally given either on the package, their web site, or you can grab a MS Word template and grab the measurements from that.

  4. egw by baldass_newbie · · Score: 1

    eGroupWare might do the trick. Especially since you didn't mention CMS as a need. Otherwise I would throw Drupal out there, too.

    --
    The opposite of progress is congress
  5. xaraya by an_mo · · Score: 1

    Xaraya is extremely extensible and customizable. I would give it a try if I were you. www.xaraya.com

  6. SQL-Ledger by penfern · · Score: 1

    It sounds to me like you're trying to do accounts/client management, not journal management. Easily, you might only need to tweek the label printing functionality. You could even look into enhancing their support for "subscription" based services, and you would have everything you wanted.

    http://www.sql-ledger.org/

  7. Try a MySQL/PHP combo by computernut · · Score: 1

    Just a thought, you did mention you wanted a "work in progress" kind of solution (OSS), but if you could get the data onto MySql or some other OSS database, a set of PHP/SQL queries could read off the required data (addresses) and then you could probably format and send to printer (am not too familiar with playing around with printer drivers and relate formatting)

    -C'nut