💾 Archived View for magaz.hellug.gr › 11 › 02_lugistics › index.gmi captured on 2024-08-31 at 12:10:44. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-02-05)
-=-=-=-=-=-=-
Panayotis Vryonis mailto:vrypan@hellug.gr(mailto:vrypan@hellug.gr) Evripidis Papakostas mailto:evris@hellug.gr(mailto:evris@hellug.gr) Ιαν 1999
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
4. The outcome
5. What has to be done.
6. References
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"...
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.
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:
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 module provides the database independency we hoped for and all the right tools for authenticating users and assigning privileges.
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.
what else ? :-)
Then we had to decide how this project would be called:
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 LUGistiX was a temptation but we resisted!
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.
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.
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.
SPONSORS provide an easy way to administer and browse sponsor-related information. The administrator can easily add/remove/edit sponsors. It is so simple!
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.
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)...