FET (c) 2002-2008 Liviu Lalescu


Program description:

	FET is free timetabling software.
	This program aims to automatically generate the timetable of a school, high-school
	or possibly university,	by a heuristic algorithm. 
	FET can mean "Free Educational Timetabling".


Requirements:

	FET is created in the following environment: openSUSE 11.0 GNU/Linux distribution,
	Midnight Commander 4.6.2, Qt 4.4.0, gcc 4.3.1, Linux 2.6.25, other great free tools.
	FET can be run on any platform supported by the free software Qt (GNU/Linux, Windows, Mac OS X).

	GNU/Linux, Mac OS X and similar OS's:
	Software:
		gcc 4.3.1 or similar (3.x.x and 4.1.x are fine, gcc 4.2.x does NOT work)
		Qt 4.4.0 or compatible (4.3.x is fine, Qt 4.2.x does NOT work).
	
	Microsoft Windows:
	For running, you need only the archive of FET compiled for Windows (which contains
	the MinGW and Qt dlls).
	For compiling, you need Qt and MinGW (do NOT use Qt 4.2.x or gcc 4.2.x).
	
	Important note about virtual memory: on Windows you might get the error message
	"The paging file is too small for this operation to complete" when trying to run fet.exe .
	Maybe on other systems you can get a similar problem.
	It seems that FET won't run without a decent amount of virtual memory.
	This is because FET allocates a large amount of static data (600MB), of which only about 50 MB are normally used.
	So the operating system must have virtual memory reserved (which will not be used normally,
	but that does not matter). So, if you disabled virtual memory, please enable it and/or increse maximum size
	if FET does not run.


Download:

	You can download the latest version from http://www.lalescu.ro/liviu/fet/ (for now).
	Older versions: you will have to contact the author if you are interested.


Getting - compiling - installing Qt by Trolltech:

	You will need Qt 4.4.0 or compatible (4.3.x works, 4.2.x does NOT work) to compile FET.
	You can get your corresponding version of Qt from http://www.trolltech.com or with your
	package manager. Please get the opensource version of Qt.
	
	GNU/Linux: It is possible to use adept manager or other package managers to get
	your version of Qt, pre-compiled. Please DO NOT use Qt 4.2.x, FET does not work with it.
	Or you can download, compile and install Qt from trolltech.com .
	
	For Windows - Download latest OpenSource Qt for MinGW from http://www.trolltech.com
	Install and let Qt download and install MinGW.
	Please make sure, after installing Qt and MinGW, that you have
	an environment variable named "QTDIR" which is C:\Qt\4.4.0"
	and you have in the PATH environmental variable the contents
	QTDIR and C:\MinGW\bin.
	
	For Mac OS X: 
	Maybe you can get pre-compiled packages for Mac. If not, get Qt from trolltech.com .


Compiling FET:
	Note: compilation takes long (maybe even 1 hour, if you are using an older computer).
	
	Currently FET can be compiled using Qt 4.4.0 or compatible (4.3.x OK, 4.2.x NOT OK).
	But the majority of interface files are Qt 3.3 forms and to modify them
	you will need Qt 3.3, which unfortunately has no free Windows version.
	
	Important note for all platforms: it seems that FET cannot be compiled with gcc 4.2.x.
	This is a bug of gcc, which was solved in gcc 4.3.x. So, you can compile FET with gcc 4.1.x or
	gcc 4.3.x or compatible (not 4.2.x), gcc 3.x.x should also work.


	GNU/Linux and similar OS's:
	- You will need Qt 4.4.0 or compatible (NOT 4.2.x) to compile this program.
	- type "qmake fet.pro". You have to use qmake from Qt 4 series, which on some systems
	might be named qmake-qt4. So, "qmake-qt4 fet.pro" might sometimes be needed.
	- type "make"
	To remove the compiled objects/executable: "make clean" and/or "make distclean".

	
	Mac OS X:
	2 Variants:
	
	1. First variant, if you use gcc compiler:
	- You will need Qt 4.4.0 or compatible to compile this program.
	- type "qmake fet.pro". You have to use qmake from Qt 4 series, which on some systems
	might be named qmake-qt4. So, "qmake-qt4 fet.pro" might sometimes be needed.
	- IMPORTANT: you might need to write: "qmake -spec macx-g++ fet.pro", if "qmake fet.pro" 
	does not produce a correct makefile. Please see 
	http://lists.trolltech.com/qt-interest/2007-04/thread01126-0.html for details.
	- type "make"
	To remove the compiled objects/executable: "make clean" and/or "make distclean".
	
	2. Another variant:
	- Type "qmake fet.pro" and then "xcodebuild".
	
	If you encounter problems, please see:
	http://lists.trolltech.com/qt-interest/2007-04/thread01126-0.html

	
	Microsoft Windows: you will have to download and install Qt with MinGW from trolltech.com .
	You need to run "qmake" and then "make" in a command line in the FET directory. 
	Then, you can remove directories "src" and "tmp", to save up space.
	If you want to obtain a version which can be run on other computers, 
	you have to copy these 7 files into the FET directory:
	C:\Qt\4.4.0\bin\mingwm10.dll,
	C:\Qt\4.4.0\bin\Qt3Support4.dll, C:\Qt\4.4.0\bin\QtCore4.dll, C:\Qt\4.4.0\bin\QtGui4.dll,
	C:\Qt\4.4.0\bin\QtNetwork4.dll, C:\Qt\4.4.0\bin\QtSQl4.dll, C:\Qt\4.4.0\bin\QtXml4.dll.
	
	
Installing FET:

	GNU/Linux and similar OS's:	
	Please move the whole directory "fet-x.x.x" into the place where you like,
	for instance to the directory "/usr/local/".
	
	Microsoft Windows:
	Move the FET directory in a place of your choice.


Running FET:

	GNU/Linux and similar OS's:
	Please chdir to the directory where fet executable is (for instance,
	"cd /home/liviu/fet-x.x.x/") and run "./fet". You may also run fet from
	another directory, but this is not thoroughly tested.
	
	Microsoft Windows:
	Run the executable fet.exe
	
	NOTE for MS Windows users: if you get the message "The paging file is too small for this operation to complete":
	If you disable virtual memory or have it low, it seems that the program won't start.
	The memory consumption of FET is maybe around 50 MB, but FET has defined approximately 600 MB of memory in internal
	variables (these are not used in normal cases). FET seems to need a good amount of virtual memory on Windows
	(maybe it is best to let Windows manage the virtual memory).
	
	COMMAND LINE: no GUI, just run "fet --inputfile=x [--timelimitseconds=y] [--timetablehtmllevel=z] [--language=t] [--printnotavailable=u]",
	where	x is the input file, for instance "inputfile.fet"
			y is integer (seconds)
			z is integer from 0 to 5 and represents the detaliation level for html timetables
			t is one of en_GB, ar, ca, de, el, es, fr, hu, id, it, lt, mk, ms, nl, pl, ro, tr
			u is either "true" or "false" and represents if you want -x- or --- in the generated timetables for the
				not available slots (default true)
			
	On GNU/Linux, you'll get a console output to help you with data.
	
	On Windows, only the file result.txt will guide you,
	I cannot make a console output on Windows (I could, but it would complicate the interface).


Languages (translations):
	
	FET will search for translations (fet_xx.qm files) in the following order: directory /usr/share/fet/translations
	(under Unix like or Mac), then directory "translations" in the directory where fet executable is,
	then directly in the directory where the fet executable is. 
	
	So, on Windows: if fet.exe is in C:\fet-x.x.x, fet will search for file fet_xx.qm in 
	C:\fet-x.x.x\translations and then in C:\fet-x.x.x\.
		On UNIX like: if fet executable is in /home/liviu/fet-x.x.x, fet will search for file fet_xx.qm in 
	/usr/share/fet/translations, then in /home/liviu/fet-x.x.x/translations and then in 
	/home/liviu/fet-x.x.x
	
	
Documentation:

	Some hints in the directory "/.../fet-x.x.x/doc/".
	Some other hints in Help menu.


Input files:

	You can open a few sample input files in "/.../fet-x.x.x/sample_inputs/" directory.
	
	You can create/modify a file from FET's user interface or you can modify it by
	hand, if you like.


Feed-back / help:
	- I would like to hear your oppinions/results about this program; any
	feed-back would be greatly appreciated.
	- Reporting bugs/wishes/patches: to forum, mailing list or author.
	
	This project is free software, so any sponsoring offer/donation would be great. You can 
	contact	the author for that.
