The ioquake3 source code is roughly arranged in seven different parts, each with a particular function. There is some overlap, but the relevant areas are outlined below.
Contains the code pertaining to the server.
Contains the code pertaining to the client.
Contains the code pertaining to rendering.
Contains common functions shared between the client/server and/or game/cgame/ui.
Contains the game logic run on the server. Calculates damage, scoring, player movement, etc.
Contains the game logic run on the client. Draws the HUD, view weapon, and the world.
There are two separate user interfaces, one used by baseq3 and one used by the missionpack.
Contains the code that displays the user interface in Quake III Arena (baseq3).
Contains the code that displays the user interface in Quake III Team Arena (missionpack).
All of these parts work together to make ioq3 what it is. (Put more about how they work together here)