﻿# VLN1-Skil2

README/Release Notes

This document contains information on the following topics:
	1.0 Overview
	2.0 User options
         2.1 Commands
	 2.2 The main menu
	3.0 SQL
	4.0 Bonus additions

| 1.0  Overview
This database stores information about famous computer scientists and machines from 
the history of computer science. The user has a variety of commands at their
disposal that allows them to access or alter this information in the database. All 
the information is kept in an SQL repository.  

| 2.0  User options

|| 2.1 Commands
Every time the user is asked to input a command, all the available commands are
listed. Most commands also have a shortcut, e.g. after entering the 'info' menu, 
typing 'c' is equivalent to typing 'computer'. Shortcuts are listed after the 
full command.

|| 2.2 The main menu
The commands from the program's main menu are as follows:  
 	
 	displays	(d) 	displays computers or scientists or both
 	info 		(i) 	displays further information about computers or scientists
 	find		(f)		searches for computers or scientists
 	bio			(b)		displays a small bio about computers or scientists
 	add 		(a)		adds a new computer or scientist
 	remove 		(r)		removes computers or scientists
 	edit 		(e)		changes information about a computer or scientist
 	about 		(ab)	software information
 	quit 		(q) 	exits the program

After completing a task, the user is automatically taken back to the main menu.

||| 2.2.1 Display
	Computers (c) : displays the computer table. Can be sorted by any column in either ascending or descending order.
	Scientists (s) : displays the scientists table. Can be sorted by any column in either ascending or descending order.
	Both (b) : displays both tables in alphabetical order by name

||| 2.2.2 Info
	The user can choose whether he wants to see further info about computers or scientists
	
	Computers (c) : displays the list of computers in order of ID. The user can choose the ID for the computer he wants more information about.
	All the scientists who worked on the chosen computer are displayed as well as all the computers each scientists has worked on.

	Scientists (s) : displays the list of scientists in order of id number. The user can choose the ID for the scientist he wants more information about.
	All the computers the chosen scientist has worked on are displayed as well as all other scientists that worked on each computer.

||| 2.2.3 Find
	Takes in a searchstring and displays information about all computers and scientists that match.

||| 2.2.4 Bio
	Displays a small bio about the computers and scientists in the program. The user can also choose options to add/update or remove a bio.

||| 2.2.5 Add
	The user can choose whether he wants to add a new computer or scientist

	Computer (c) : The user is asked for the name, whether the computer was built or not, year built and type of computer.
	After adding the computer, the user is asked if he wants to add information about a scientist that worked on the computer he added. He can either add the new computer to an existing scientist or add a new scientist.
	He can also add as many scientists to the new computer as he wants.

	Scientist (s) : The user is asked for the name, gender, year of birth, year of death and country of origin of the new scientist.
	After adding the scientist, the user is asked if he wants to add information about a computer that the new scientist worked on. He can either add the scientist to an existing computer or add a new computer.
	He can also add as many computers to the newscientist as he wants.

||| 2.2.6 Remove
	The user can choose whether he wants to remove a computer or a scientist.
	
	After choosing, the user can either search for a computer or scientist or display all in order of ID. Then he chooses the ID of the computer or scientist he wants to remove. 
	After removing, the user is asked if he wants to continue removing or not.

||| 2.2.7 Edit
	The user can choose if he wants to edit a computer, a scientist or manage connections.

	Computer/Scientist: the user can either search for a computer or scientist or display all in order of ID. Then he chooses the ID of the computer or scientist he wants to edit. 

	Manage connections (m) : the user can choose if he wants to add a new connection or remove one. 
		add (a): the user is asked if he wants to manage a computer or scientist
			Computer (c) : The user can either search for a computer or display all in order of ID. Then he chooses the ID of the computer he wants to manage.
			After choosing a computer, the scientist table is displayed and the user is asked to choose the ID of the scientist he wants to connect the computer to.

			Scientist (s) : The user can either search for a scientist or display all in order of ID. Then he chooses the ID of the scientist he wants to manage.
			After choosing a scientist, the computer table is displayed and the user is asked to choose the ID of the computer he wants to connect the computer to.

		remove (r): the user is asked to select computers or scientists. 
			The table the user chose is displayed in order of ID. Then he chooses the ID of the computer or scientist he wants to remove a connection to.
		
			If he chooses a computer, the scientists connected to it are displayed and the user can choose the ID of the scientist he wants to remove the connection to.
			If he chooses a scientist, the computers connected to him are displayed and the user can choose the ID of the computer he wants to remove the connection to.
			
||| 2.2.8 About
	Displays information about the program and its creators.

| 3.0  SQL
This program stores information in an SQL depository

| 4.0 Bonus Additions
	Bio - The user can view a small bio about the computers and scientists in the program. The user can also add, edit or remove a bio.
	About - Information about the program and its creators
	Remove - The user can remove any computer, scientist or connections between computers and scientists.
	Edit - The user can edit any column of both computers and scientists. He can also edit connections between scientists.
	Manage connections - The user can add or remove connections between computers and scientists.
	Seconday sort - When tables are displayed in any other order than name or id, there is a secondary sort that sorts into alphabetical order within the chosen sort.
	Error check EVERYWHERE!


