+++
title = 'LUGistics - A Short Presentation'
date = '1999-01-01T00:00:00Z'
description = ''
author = 'Panayotis Vryonis mailto:vrypan@hellug.gr(mailto:vrypan@hellug.gr) Evripidis Papakostas mailto:evris@hellug.gr(mailto:evris@hellug.gr)'
issue = ['Magaz 11']
issue_weight = 2
+++

----------------------------------------------------------------------------------------------------------------------------------------------------------------

*LUGistics is an ambitious project, aiming to simplify the overall administration needed by a LUG in order to maintain member lists, running projects, news and
events, sponsors, guestbooks, questionaries, electronic votings etc. For non-english speaking LUGs, LUGistics provides a module called LEXIS for keeping a
dictionary of any translating efforts.*

----------------------------------------------------------------------------------------------------------------------------------------------------------------

**1. Introduction**
-----------------------------------------------

**2. Itchy**
----------------------------------------

**3. \...and Scratchy**
---------------------------------------------------

-   [3.1 Deciding on the tools](#ss3.1)
-   [3.2 and the name.](#ss3.2)

**4. The outcome**
----------------------------------------------

-   [4.1 MEMB](#ss4.1)
-   [4.2 PRJ](#ss4.2)
-   [4.3 SPONSORS](#ss4.3)
-   [4.4 LEXIS](#ss4.4)

**5. What has to be done.**
-------------------------------------------------------

**6. References**
---------------------------------------------


### [1. Introduction]{#s1}

When we first founded HELLUG (Hellenic Linux Users Group) it was made clear to us that one of the most time-consuming tasks we\'d have, would be keeping our
home site up to date. Almost any LUG has to maintain a list of its members (normally, continuously increasing), to gather and present all local members\'
activities and projects, to publicaly thank its sponsors and provide a means to conduct votings. Due to our WWW administrator\'s limited time, we had to come up
with a way to automate these \'trivial\' tasks as much as possible, and securely distribute the maintenance to more than one individuals.

Another disired goal was to uniformly present all of the above, using a consistant look-and-feel through-out our web pages.

This is the time that we come to Eric S. Raymond\'s words; \"Every \[good\] work of software starts by scratching a developer\'s personal itch\"\...


### [2. Itchy]{#s2}

It was quite clear to us that the interface should be HTML-based. This way, we would be platform independent, the same set of tools is used by both the
administrators and the public.

All our data should be kept in an SQL database (no justification needed for such an decision) but we wanted to keep our implementation database-independent.

We decided to de-centralize the administration, breaking it down to smaller areas of responsibilities and assigning them to different individuals. So, there
should be some kind of authentication.

In some cases, not only administrators but users also, should be able to enter data to the database (suggestions, votes, translations etc).

Any Project (ours included) that respects itself should have a proper name.


### [3. \...and Scratchy]{#s3}

### [3.1 Deciding on the tools]{#ss3.1}

We looked around for free (in the sence of OSS) development tools running on Linux, that would fit our needs. Here is what we ame up with:

#### mod\_php

We chose PHP as our development tool. The language (c-like) is quite easy to learn, supports an Object-Oriented architecture, documentation is complete and
there are lots of ready-made tools to speed up the development.

PHP is server-parsed HTML and not CGI which is considered a bigger security risk. (At least, that is what we think\...)

#### php\_lib

php\_lib module provides the database independency we hoped for and all the right tools for authenticating users and assigning privileges.

#### postgeSQL

It\'s free, it\'s stable, there are many tools, much documentation to help someone find his way around, and is well supported by php.

#### apache

what else ? :-)

### [3.2 and the name.]{#ss3.2}

Then we had to decide how this project would be called:

#### LUGistics

It surely sounds pompous! It also incorporates our target (LUGs) and our hellenic origin (the ending -istics which is hellenic). We also thought that our
product would be easier to promote (eeeh ???) with a name that sounds familiar. Writing it LUGisti**X** was a temptation but we resisted!

### [4. The outcome]{#s4}

Though LUGistics is still at an early stage (at the time this is written, v0.45), it is quite functional and four \"modules\" are already present. In order to
create a uniform look\'n\'feel an d avoid rewritting the same code again and again, we created an API that is used by all modules. As an extra benefit from this
approach changing the look in all pages is a piece of cake.

You may view screenshots here.

### [4.1 MEMB]{#ss4.1}

Using the MEMB (members) module, the administrator is able to insert, delete and update members in the database. These data include (apart from the expected
name, e-mail, homepage, occupation, etc.) a photo and a short CV.

Users are able to query the database and get detailed results. Privacy is respected by keeping \"sensitive\" information, such as telephone numbers, unavailable
to the public. ![](/11/img/members1.jpeg)

### [4.2 PRJ]{#ss4.2}

Like MEMB, PRJ (projects) lets the administrator insert/update/remove data about projects. Each project has a title,description and numerous URLs and news.A URL
is considered to be any Uniform Resource Locator such as e-mails, web pages and ftp sites. Special icons are automatically assigned to each type.

MEMB and PRJ nicelly cooperate and when you click on the e-mail url of a member, you get the full member\'s card.

There is also a special view, where one can see the latest news from all projects. ![](/11/img/projects1.jpeg)

### [4.3 SPONSORS]{#ss4.3}

SPONSORS provide an easy way to administer and browse sponsor-related information. The administrator can easily add/remove/edit sponsors. It is so simple!

### [4.4 LEXIS]{#ss4.4}

LEXIS is quite a complicated module. The idea is to create an electronic dictionary that will be used as a reference by any translation effort (believe it or
not, there ARE non-english-speaking countries!!!). Currently, a user can search the database given an english or a greek word, suggest new ones and submit new
synonyms for existing ones. The administrator (or the responsible team), apart from inserting, deleting and editing a word\'s data can also incorporate or
reject suggestions.

Special care has been taken to prevent uncontrolled number of suggestions that would flood the database.


### [5. What has to be done.]{#s5}

Lots of things!

First of all, we want to clean up our code. As we used PHP and phplib, we found out many things that were not obvious at the time we started writting the code.
So, older code is a bit incompatible (from a developer\'s and not a user\'s point of view).

Then we have to introduce some kind of user and privilege management for the administrator, since right now there are only two kind of users, public and admins
(all admins have the same privileges\...)

When the above will be done, we will release the code under GPL (of course) .

Install LUGistics on our server (www.hellug.gr) to see if it can really do what it is built for.

And finally, keep on developing new modules (like VOTE)\...


### [6. References]{#s6}

-   The home site of PHP is http://www.php.org/.
-   we found phplib at http://phplib.shonline.de/
-   Information about PostgreSQL can be found at http://www.postgresql.org/

