Read Me File for the downloadmanager:

Steps to make it work:
1. Extract the contents of the .tar.bz2 into any folder
2. Use the make command to make the project executable
3. Run the ./downloadmanager executable

Extracted folder should contain
	1. downloadmanager.c
	2. stack.c
	3. stack.h
	4. stack.o
	5. settings.sqlite3
	6. downloads.sqlite3
	7. Makefile
	8. Documentation folder 
	9. Readme
	10. Doxyfile

Databases used:
We use two different sqlite3 file based databases named settings.sqlite3 and downloads.sqlite3 . Make sure that these are present when you haveextracted the folder to ensure proper working of the download manager. The tables inside the databases are settings inside settings.sqlite3 and ddteails inside the downloads.sqlite3

Header files:
We have implemented stack as a header file. So make sure that the stack.o , stack.c and stack.h files are also present in the folder you extract. We have use this header file directly in the program. It is our own implementation and not some third party header file.

Steps to download something:
1. When you run the software for the first time as it does not have any information about the proxy settings and the default path settings ot takes all that from you. So initially you will fill these details in two windows being popped up. If you are not having any proxy settings please leave that empty.
2. A main window next will be displayed. It contains tabbed panes on the left and someprogress bars on the right and a menu bar at top. There are some stopped buttons associated with the progress bar which will only function when some downloads are going on , otherwise they wont have any effect.
3. To start a new download you have the follwoing two options:
	a) Goto the File menu and select New Downloads option. Fill the necessary details like the URL, Path of download and an optional name(if not specified it takes the name of the file in the URL as the filename).Click submit and your download starts with the status messages shown below the progress bar.
	b) GO to the download tab in the tabbed pane shown on the left side of the main window.Click the New download button. Rest all the steps are as above.
4. To change the proxy settings you have the follwoing options:
	a)Goto the Editmenu and select the proxy settings option. Fill the proxy details in the new window. Note that proxy can be both in words like proxy.iiit.ac.in as well as in numbers like 192.168.36.204. Click on submit to change the settings.
	b)Goto the proxy or port tab and click on the change settings button. Rest all the steps are as above.
5. To change the default path settings you have these two options:
	a) Goto the edit menu and select the Path settings option. Choose the default path for all ur downloads(this will be used when u are not going to provide any path during the new downloads).
	b) Goto the download tab and then select the change settings button. Rest all tge steps are as above.
6. To view all your downloads till now you have the following two options:
	a) Goto the file menu and then select the view downlaod option. The window displaying the details of the downloads(Name, path,Size,date) is shown to you.
	b)  Goto the download tab and click the view download button. Rest all the results are as above.
7. To view the information related to the software select the info menu inside the view menu.
8. To view the help related to the software select the help menu inside the help menu.
9. To exit from the software select the exit menu from inside the filemenu or click on the cross option of the window.
10. The files which is being downloaded will be automatically deleted if
	a) The stop button of that download is clicked
	b) When cntrl+c is pressed and some download is going on

Files that it can download:
We have tested the software with the following kinds of file downloads:
	a) General txt file
	b) .mp3 downloads
	c) .tar.gz or .zip files
	d) .pdf's
	e) .avi
	f) .html,.php,.jsp
	g) images(.jpg, .png etc)
	i) .ppt and other file formats
Note that the progress bar shows the % of the file downloaded, estimated time remaining and the download rate at which it is downloading the file.

The areas covered in the project are:
	a) Gtk GUI programming
	b) Socket Network programing
	c) Multi Threading
	d) databases(sqlite3)
	e) Signals

Team information:
	Nikhil Jain(200905026) MTech CSE
	Anshul Gupta(200905005) MTech CSE
